a09f18a739
- disable configure verify check - update configure file and make clippy happy - check autoconf version - fix allow_failures - i686-apple target are not supported now - use latest travis syntax - less verbose and allow non-master check fail Upstream doesn't guarantee configure file matches across platform and versions. Checking configure file can fail easily - mute alloc_trait tests - rich diff - remove unsupported platform i686-apple-darwin is removed from nightly and beta. - make clippy and rustfmt happy Signed-off-by: Jay Lee <BusyJayLee@gmail.com> |
||
---|---|---|
.github/workflows | ||
benches | ||
ci | ||
jemalloc-ctl | ||
jemalloc-sys | ||
jemallocator-global | ||
src | ||
systest | ||
tests | ||
.appveyor.yml | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
Cargo.toml | ||
Cross.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |
jemallocator
Links against
jemalloc
and provides aJemalloc
unit type that implements the allocator APIs and can be set as the#[global_allocator]
Overview
The jemalloc
support ecosystem consists of the following crates:
jemalloc-sys
: builds and links againstjemalloc
exposing raw C bindings to it.jemallocator
: provides theJemalloc
type which implements theGlobalAlloc
andAlloc
traits.jemalloc-ctl
: high-level wrapper overjemalloc
's control and introspection APIs (themallctl*()
family of functions and the MALLCTL NAMESPACE)'
Documentation
To use jemallocator
add it as a dependency:
# Cargo.toml
[dependencies]
[target.'cfg(not(target_env = "msvc"))'.dependencies]
jemallocator = "0.3.2"
To set jemallocator::Jemalloc
as the global allocator add this to your project:
# main.rs
#[cfg(not(target_env = "msvc"))]
use jemallocator::Jemalloc;
#[cfg(not(target_env = "msvc"))]
#[global_allocator]
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.
Platform support
The following table describes the supported platforms:
build
: does the library compile for the target?run
: dojemallocator
andjemalloc-sys
tests pass on the target?jemalloc
: dojemalloc
's tests pass on the target?valgrind
: do the tests pass under valgrind?
Tier 1 targets are tested on all Rust channels (stable, beta, and nightly). All other targets are only tested on Rust nightly.
Linux targets: | build | run | jemalloc | valgrind |
---|---|---|---|---|
aarch64-unknown-linux-gnu |
✓ | ✓ | ✗ | ✗ |
arm-unknown-linux-gnueabi |
✓ | ✓ | ✗ | ✗ |
armv7-unknown-linux-gnueabi |
✓ | ✓ | ✗ | ✗ |
i586-unknown-linux-gnu |
✓ | ✓ | ✓ | ✗ |
i686-unknown-linux-gnu (tier 1) |
✓ | ✓ | ✓ | ✗ |
mips-unknown-linux-gnu |
✓ | ✓ | ✗ | ✗ |
mipsel-unknown-linux-musl |
✓ | ✓ | ✗ | ✗ |
mips64-unknown-linux-gnuabi64 |
✓ | ✓ | ✗ | ✗ |
mips64el-unknown-linux-gnuabi64 |
✓ | ✓ | ✗ | ✗ |
powerpc-unknown-linux-gnu |
✓ | ✓ | ✗ | ✗ |
powerpc64-unknown-linux-gnu |
✓ | ✓ | ✗ | ✗ |
powerpc64le-unknown-linux-gnu |
✓ | ✓ | ✗ | ✗ |
x86_64-unknown-linux-gnu (tier 1) |
✓ | ✓ | ✓ | ✓ |
MacOSX targets: | build | run | jemalloc | valgrind |
x86_64-apple-darwin (tier 1) |
✓ | ✓ | ✗ | ✗ |
i686-apple-darwin (tier 1) |
✓ | ✓ | ✗ | ✗ |
Windows targets: | build | run | jemalloc | valgrind |
x86_64-pc-windows-msvc (tier 1) |
✗ | ✗ | ✗ | ✗ |
i686-pc-windows-msvc (tier 1) |
✗ | ✗ | ✗ | ✗ |
x86_64-pc-windows-gnu (tier 1) |
✓ | ✓ | ✗ | ✗ |
i686-pc-windows-gnu (tier 1) |
✓ | ✓ | ✗ | ✗ |
Android targets: | build | run | jemalloc | valgrind |
aarch64-linux-android |
✓ | ✓ | ✗ | ✗ |
x86_64-linux-android |
✓ | ✓ | ✓ | ✗ |
Features
The jemallocator
crate re-exports the features of the jemalloc-sys
dependency.
License
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.
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.