A Rust allocator crate which links to jemalloc
and provides a
Jemalloc unit type for use with the
# Cargo.toml [dependencies] jemallocator = "0.1.8"
extern crate jemallocator; #[global_allocator] static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc;
And that's it! Once you've defined this
static then jemalloc will be used for
all allocations requested by Rust code in the same program.
This crate has some Cargo feature flags:
profiling: configure jemalloc with
debug: configure jemalloc with
bg_thread: enabled by default. When disabled, configure jemalloc with
unprefixed_malloc_on_supported_platforms: when disabled, configure jemalloc with
--with-jemalloc-prefix=. Enabling this causes symbols like
mallocto be emitted without a prefix, overriding the ones defined by libc. This usually causes C and C++ code linked in the same program to use jemalloc as well.
On some platforms prefixes are always used because unprefixing is known to cause segfaults due to allocator mismatches.
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in jemallocator by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.