1 个不稳定版本

使用旧的Rust 2015

0.1.0 2018年4月6日

#704内存管理

MIT 协议

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 表示释放
  • 内存地址
  • 大小

您可以使用 activatedeactivate 方法在任何时候开始和停止收集。

依赖项

~0.6–1MB
~15K SLoC