1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2018年4月6日 |
---|
#704 在 内存管理
6KB
116 代码行
Rust的追踪分配器
此项目允许您将所有分配记录到文件中。
要将它包含到您的项目中,用以下文件初始化库:
#![feature(global_allocator)]
extern crate tracing_allocator;
use std::fs::File;
#[global_allocator]
static GLOBAL: tracing_allocator::Allocator = tracing_allocator::Allocator{};
fn main() {
let f = File::create("trace.txt").unwrap();
tracing_allocator::Allocator::initialize(&f);
tracing_allocator::Allocator::activate();
let s = String::from("Hello world!");
let mut v = Vec::new();
v.push(1);
trace.txt
文件将包含以下内容:
00029801ACDA259B A 00007FB780500000 000000000000000C
00029801ACDB7EFB A 00007FB780500010 0000000000000010
00029801ACDBAAC1 D 00007FB780500010 0000000000000010
00029801ACDBCD09 D 00007FB780500000 000000000000000C
列
- 时间(单调的,所以不与任何时区相关联)
A
表示分配,D
表示释放- 内存地址
- 大小
您可以使用 activate
和 deactivate
方法在任何时候开始和停止收集。
依赖项
~0.6–1MB
~15K SLoC