Skip to content

maratik123/tcmalloc-better

Repository files navigation

TCMalloc better

A Rust wrapper over Google's TCMalloc memory allocator

Latest Version Documentation

A drop-in global allocator wrapper around the TCMalloc allocator. TCMalloc is a general-purpose, performance-oriented allocator built by Google.

Comparison with other tcmalloc wrappers

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

Caveats

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.

Usage

use tcmalloc_better::TCMalloc;

#[global_allocator]
static GLOBAL: TCMalloc = TCMalloc;

fn main() {
    TCMalloc::process_background_actions_thread();

    // Rest of main
}

Requirements

A C++ compiler is required for building TCMalloc with cargo.

See also

  • malloc-best-effort - library, which automatically selects the best suited allocator based on the target platform

About

A Rust wrapper over Google's TCMalloc memory allocator

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •