2 releases
Uses old Rust 2015
0.1.1 | Jul 27, 2019 |
---|---|
0.1.0 | Jul 25, 2019 |
#567 in Memory management
7KB
140 lines
tralloc: tracing allocator for Rust
This project allows you to log all the allocations to stderr, stdout or a file.
To use it, register the global allocator and activate it:
#![feature(global_allocator)]
extern crate tralloc;
#[global_allocator]
static GLOBAL: tralloc::Allocator = tralloc::Allocator{};
fn main() {
tralloc::Allocator::write_to_stderr();
tralloc::Allocator::activate();
let s = String::from("Hello world!");
let mut v = Vec::new();
v.push(1);
The following will be printed:
00029801ACDA259B A 00007FB780500000 000000000000000C
00029801ACDB7EFB A 00007FB780500010 0000000000000010
00029801ACDBAAC1 D 00007FB780500010 0000000000000010
00029801ACDBCD09 D 00007FB780500000 000000000000000C
Columns:
- time (monotonic, so not linked to any timezone)
A
for allocation,D
for deallocation- memory address
- size
You can use the activate
and deactivate
methods to start
and stop collection at any time.
Note
This repository is based on tracing_allocator. It was forked because of breaking changes in Rust internals and lack of communication from the original author.
Dependencies
~0.6–1MB
~15K SLoC