History log of /relibc/ralloc/benches/ (Results 1 – 6 of 6)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
14e275d823-Jun-2018 Tom Almeida <tommoa256@gmail.com>

Made sure all tests and benches actually use ralloc as their global allocator

92ca1d7321-Jun-2018 Tom Almeida <tommoa256@gmail.com>

Run rustfmt on all files

998377c614-Aug-2016 ticki <ticki@users.noreply.github.com>

Implement BRK caching.

Previously, BRK was making two syscalls in glibc due to requesting
the program break and then setting it. This is fixed by caching this
program break.

This commit prepares fo

Implement BRK caching.

Previously, BRK was making two syscalls in glibc due to requesting
the program break and then setting it. This is fixed by caching this
program break.

This commit prepares for OS memtrimming, which needs a well-defined
thread-safe function.

- Completely remove libc dependency due to allocation behavior being
uncertain in non-glibc implementation (the POSIX standard tells little
to nothing about this).
- Move the default OOM handler to shim.
- Give an error message in the default OOM handler.
- Add SBRK benchmark.

This should improve performance of fresh allocations by 30-40%.

show more ...

cdec4b0e03-Aug-2016 ticki <ticki@users.noreply.github.com>

Ralloc 1.0.0: A trait-based local/global allocator model.

- Use a trait-based approach to local/global allocators. In particular,
we make what was previously provided by `Bookkeeper` to a trait in

Ralloc 1.0.0: A trait-based local/global allocator model.

- Use a trait-based approach to local/global allocators. In particular,
we make what was previously provided by `Bookkeeper` to a trait in
which the custom methods are overriden.
- Enable ralloc-based block list reallocation. Instead of using BRK for
this, we allow the allocator itself to manage the bookkeeper's
capacity. This is done by adding the guarantee of the vector's
capacity always being greater than or equal two the length plus two.
- Remove the `UniCell` primitive and provides a `MoveCell` primitive
instead.
- Move `Bookkeeper`-specific methods to `Bookkeeper`'s impl instead of
the `Allocator` trait.
- Introduce the `LazyInit` primitive, which provides functionality
similar to the `lazy_static` crate. In particular, it allows for an
initializer to be executed if initialization is needed. This is used
for allocating the initial segment.
- Use lonely method for allocation API (abolish `lock`, which is no
longer relevant due to the new model).
- Due to an unsoundness discovered by @nilset, we remove the correctness
guarantee of the "seperate deallocation" example.
- Remove microcaches. This method is outdated with the new model. In the
future, it will likely be replaced by a small-allocation LL arena.
- Wrap TLS variables in a newtype that guarantees against crossthread
leakage.
- Update the tests.

show more ...

146a5db906-Jun-2016 ticki <ticki@users.noreply.github.com>

Add thread local allocators, BRK locks, platform independency, lock reuse, local allocators, more tests, abort-as-panic, additional benches, provide an Allocator struct, memleak detection, fix bugs r

Add thread local allocators, BRK locks, platform independency, lock reuse, local allocators, more tests, abort-as-panic, additional benches, provide an Allocator struct, memleak detection, fix bugs related to the is_empty function, micro caches (implemented, but not wired up), a prelude, allocator specific OOM handler, fix bound checks, Leak trait, fix bug in Mutex.

show more ...

fc19fb6d25-May-2016 ticki <ticki@users.noreply.github.com>

Inline smaller functions, update README, add benchmarks