#分配器 #内存使用 #峰值内存

peak_alloc

一个用于跟踪(最大)分配内存的分配器

3 个不稳定版本

0.2.1 2024年2月26日
0.2.0 2023年4月5日
0.1.0 2021年1月8日

内存管理 中排名第56

Download history 702/week @ 2024-03-13 903/week @ 2024-03-20 852/week @ 2024-03-27 940/week @ 2024-04-03 989/week @ 2024-04-10 770/week @ 2024-04-17 863/week @ 2024-04-24 1123/week @ 2024-05-01 736/week @ 2024-05-08 570/week @ 2024-05-15 665/week @ 2024-05-22 710/week @ 2024-05-29 1077/week @ 2024-06-05 856/week @ 2024-06-12 1405/week @ 2024-06-19 1664/week @ 2024-06-26

每月下载量5,120
用于 11 Crates(10个直接使用)

MIT 协议

11KB
84 代码行

Peak Alloc

Peak Alloc是一个简单且开销低的Rust分配器,允许您跟踪(并咨询)分配给进程的内存量以及在其生命周期中分配给进程的最大内存量。

注意1

当我说peak alloc开销低时,我的意思是它只维护一对原子usize。因此,开销很低...但是由于原子数操作,确实存在开销。

注意2

峰值分配器实际上只是系统分配器的一个包装器。大部分工作都委托给了系统分配器,而PeakAlloc只是维护原子计数器。

使用方法

在您的 Cargo.toml 中,您应该在依赖部分添加以下行。

[dependencies]
peak_alloc = "0.2.0"

然后在您的main代码中,您将像下面这样简单地使用它

use peak_alloc::PeakAlloc;

#[global_allocator]
static PEAK_ALLOC: PeakAlloc = PeakAlloc;

fn main() {
	// Do your funky stuff...

	let current_mem = PEAK_ALLOC.current_usage_as_mb();
	println!("This program currently uses {} MB of RAM.", current_mem);
	let peak_mem = PEAK_ALLOC.peak_usage_as_gb();
	println!("The max amount that was used {}", peak_mem);
}

没有运行时依赖