Find a file
2018-07-11 19:46:26 +02:00
benches Adds benchmarks for nallocx, calloc, alloc, alloc_excess, ralloc, ralloc_excess (#26) 2017-11-27 10:07:57 -08:00
ci temporarily work around toolchain bug 2018-07-11 18:38:30 +02:00
jemalloc-sys bump version 2018-07-04 16:43:04 +02:00
src fix shrink_to_fit implementation 2018-07-11 19:46:26 +02:00
systest Upgrade libc dependency in systest to extend support to ppc64le 2017-07-20 03:32:17 +00:00
tests Upgrade to rustc 1.28.0-nightly (b68432d56 2018-06-12) 2018-06-13 19:46:20 +02:00
.appveyor.yml fixup 2018-05-04 16:59:37 +02:00
.gitignore Initial commit 2016-01-20 17:03:24 -08:00
.gitmodules update jemalloc5.1RC1 to jemalloc5.1 2018-05-16 19:16:50 +02:00
.travis.yml remove msvc appveyor builds; remove emscripten targets 2018-05-04 16:28:56 +02:00
Cargo.toml bump version 2018-07-04 16:43:04 +02:00
Cross.toml use jemalloc submodule 2018-05-03 16:41:15 +02:00
LICENSE-APACHE Fill out some more project metadata 2016-01-20 17:06:21 -08:00
LICENSE-MIT Fill out some more project metadata 2016-01-20 17:06:21 -08:00
README.md Document feature flags 2018-06-25 18:59:27 +02:00

jemallocator

Build Status Build Status

Documentation

A Rust allocator crate which links to jemalloc and provides a Jemalloc unit type for use with the #[global_allocator] attribute.

Usage:

# Cargo.toml
[dependencies]
jemallocator = "0.1.8"

Rust:

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.

Feature flags

This crate has some Cargo feature flags:

  • profiling: configure jemalloc with --enable-prof.

  • debug: configure jemalloc with --enable-debug.

  • bg_thread: enabled by default. When disabled, configure jemalloc with --with-malloc-conf=background_thread:false.

  • unprefixed_malloc_on_supported_platforms: when disabled, configure jemalloc with --with-jemalloc-prefix=. Enabling this causes symbols like malloc to 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.

See jemalloc/INSTALL.md.

License

This project is licensed under either of

at your option.

Contribution

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.