Find a file
2018-10-23 14:48:04 +02:00
benches
ci
jemalloc-sys
src
systest
tests
.appveyor.yml
.gitignore
.gitmodules
.travis.yml
Cargo.toml
Cross.toml
LICENSE-APACHE
LICENSE-MIT
README.md

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.

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

  • 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=_rjem_. 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.