tcmalloc ======== A drop-in [`GlobalAlloc`][1] implementation using `tcmalloc` from [gperftools][2]. [![Travis badge](https://travis-ci.org/jmcomets/tcmalloc-rs.svg?branch=master)](https://travis-ci.org/jmcomets/tcmalloc-rs) [![crates.io badge](https://img.shields.io/crates/v/tcmalloc.svg)](https://crates.io/crates/tcmalloc) # Usage Requires Rust 1.28+ ```rust extern crate tcmalloc; use tcmalloc::TCMalloc; #[global_allocator] static GLOBAL: TCMalloc = TCMalloc; ``` Also note that you can only define one *global* allocator per application. By default this crate expects to link to a system-installed tcmalloc. To build the bundled copy of tcmalloc, enable the "bundled" feature. Note the [caveats about profiling and libunwind/libgcc on 64-bit linux][4] — they are not built by this crate, and tcmalloc will silently link to versions of both that can cause profiling deadlocks. [1]: https://doc.rust-lang.org/nightly/core/alloc/trait.GlobalAlloc.html [2]: https://github.com/gperftools/gperftools [3]: https://doc.rust-lang.org/nightly/unstable-book/language-features/global-allocator.html [4]: https://github.com/gperftools/gperftools/blob/master/INSTALL#L33