[−][src]Crate snmalloc_rs
snmalloc-rs
provides a wrapper for microsoft/snmalloc
to make it usable as a global allocator for rust.
snmalloc is a research allocator. Its key design features are:
- Memory that is freed by the same thread that allocated it does not require any synchronising operations.
- Freeing memory in a different thread to initially allocated it, does not take any locks and instead uses a novel message passing scheme to return the memory to the original allocator, where it is recycled.
- The allocator uses large ranges of pages to reduce the amount of meta-data required.
The benchmark is available at the paper of snmalloc
There are three features defined in this crate:
debug
: Enable theDebug
mode insnmalloc
.1mib
: Use the1mib
chunk configuration.cache-friendly
: Make the allocator more cache friendly (settingCACHE_FRIENDLY_OFFSET
to64
in building the library).
The whole library supports no_std
.
To use snmalloc-rs
add it as a dependency:
# Cargo.toml
[dependencies]
snmalloc-rs = "0.1.0"
To set SnMalloc
as the global allocator add this to your project:
#[global_allocator] static ALLOC: snmalloc_rs::SnMalloc = snmalloc_rs::SnMalloc;
Structs
SnMalloc |