#allocation #observability #memory


global allocator that provides hooks for tracking allocation events

3 releases

0.1.2 Oct 5, 2021
0.1.1 Oct 4, 2021
0.1.0 Oct 3, 2021

#56 in Profiling

MPL-2.0 license

449 lines


A GlobalAlloc-compatible allocator implementation that provides the ability to track allocation events.


As allocators are specialized bits of code, we've included an example in the examples/ folder to show how to use tracking_allocator, rather than putting abbreviated snippets in the README. It is extensively documented, and explains the finer points of using this crate, and what can be acheived with it.

The actual Rust-level documentation is present, and should hopefully be clear and concise, but the example is meant to be how you learn to use the crate, with the Rust-level documentation as a rote "what's that type signature again?" style of reference.

When running the example, you should end up seeing output similar to this:

allocation -> addr=0x55e882b744f0 size=80 group_id=Some(0) tags=None
deallocation -> addr=0x55e882b74490
allocation -> addr=0x55e882b74550 size=12 group_id=Some(1) tags=None
allocation -> addr=0x55e882b74570 size=96 group_id=Some(1) tags=None
deallocation -> addr=0x55e882b74550
deallocation -> addr=0x55e882b74570


~30K SLoC