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

peak_alloc

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

3 个不稳定版本

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

内存管理 中排名第56

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

每月下载量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);
}

没有运行时依赖