A Rust wrapper over Google's TCMalloc memory allocator
A drop-in global allocator wrapper around the TCMalloc allocator. TCMalloc is a general-purpose, performance-oriented allocator built by Google.
Current TCMalloc wrappers rely on gperftools, which has been in a detached state from the main development branch for over 10 years and lacks modern features such as per-CPU caching.
- tcmalloc - Cons:
- Outdated wrapper, which does not updates for years
- Depends on gperftools-2.7
- tcmalloc2 - Cons:
- Wrapper which can not build in offline mode
- Depends on gperftools-2.16
This library is intended for use on Linux (x86_64, aarch64). For applications requiring support on a broader range of platforms, consider using malloc-best-effort, which automatically selects the best allocator based on the target platform.
use tcmalloc_better::TCMalloc;
#[global_allocator]
static GLOBAL: TCMalloc = TCMalloc;
fn main() {
TCMalloc::process_background_actions_thread();
// Rest of main
}
A C++ compiler is required for building TCMalloc with cargo.
- malloc-best-effort - library, which automatically selects the best suited allocator based on the target platform