#heap #size #value #measuring #heap-allocation #heap-allocator #pointers

no-std malloc_size_of

A an allocator-agnostic crate for measuring the heap size of a value

2 releases

0.1.0 Feb 12, 2025
0.1.0-alpha.1 Feb 7, 2025

#133 in Memory management

Download history 116/week @ 2025-02-04 216/week @ 2025-02-11

332 downloads per month
Used in 3 crates

MIT/Apache

25KB
406 lines

MallocSizeOf

Build Status Crates.io Docs Crates.io License dependency status

A an allocator-agnostic crate for measuring the runtime size of a value including the size of any heap allocations that are owned by that value.

This crate is used by both Servo and Firefox for memory usage calculation.

Features

  • It isn't bound to a particular heap allocator.
  • It provides traits for both "shallow" and "deep" measurement, which gives flexibility in the cases where the traits can't be used.
  • It allows for measuring blocks even when only an interior pointer can be obtained for heap allocations, e.g. HashSet and HashMap. (This relies on the heap allocator having suitable support, which jemalloc has.)
  • It allows handling of types like Rc and Arc by providing traits that are different to the ones for non-graph structures.

Dependencies