This project is the successor of jemallocator.
The project is also published as
jemallocator for historical reasons. The two crates are the same except names. For new projects, it's recommended to use
tikv-xxx versions instead.
jemallocand provides a
Jemallocunit type that implements the allocator APIs and can be set as the
jemalloc support ecosystem consists of the following crates:
tikv-jemalloc-sys: builds and links against
jemallocexposing raw C bindings to it.
tikv-jemallocator: provides the
Jemalloctype which implements the
tikv-jemalloc-ctl: high-level wrapper over
jemalloc's control and introspection APIs (the
mallctl*()family of functions and the MALLCTL NAMESPACE)'
tikv-jemallocator add it as a dependency:
# Cargo.toml   = "0.5"
tikv_jemallocator::Jemalloc as the global allocator add this to your project:
# main.rs use Jemalloc; static GLOBAL: Jemalloc = 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.
The following table describes the supported platforms:
build: does the library compile for the target?
tikv-jemalloc-systests pass on the target?
tikv-jemalloc's tests pass on the target?
Tier 1 targets are tested on all Rust channels (stable, beta, and nightly). All other targets are only tested on Rust nightly.
tikv-jemallocator crate re-exports the features of the
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
tikv-jemallocator by you, as defined in the Apache-2.0 license,
shall be dual licensed as above, without any additional terms or conditions.