13次发布
0.4.8 | 2022年11月7日 |
---|---|
0.4.7 | 2021年4月27日 |
0.4.6 | 2020年12月12日 |
0.4.5 | 2020年8月18日 |
0.4.2 | 2019年12月22日 |
#68 in Unix APIs
48,967 每月下载量
用于 55 个crate(7 个直接使用)
67KB
584 行代码(不包括注释)
perf-event: Linux性能监控的Rust接口
该库使用Linux perf_event_open
API来访问性能监控的硬件和软件。使用 Builder
创建一个perf事件计数器,然后使用 enable
和 disable
启动和停止计数。调用 read
获取计数。
例如,这个例子计算了调用 println!
所使用的循环数。尝试调整向量的长度以查看循环计数的变化。
use perf_event::Builder;
fn main() -> std::io::Result<()> {
let mut counter = Builder::new().build()?;
let vec = (0..=51).collect::<Vec<_>>();
counter.enable()?;
println!("{:?}", vec);
counter.disable()?;
println!("{} instructions retired", counter.read()?);
Ok(())
}
由于我们没有指定要计数的具体事件类型,Builder
默认为 PERF_COUNT_HW_INSTRUCTIONS
事件,其文档说明
已退出的指令。请注意,这些可能会受到各种问题的影响,最显著的是硬件中断计数。
在 examples
目录中包含了一些计算其他类型事件的程序。
另请参阅
perfcnt
crate 提供了比该crate更广泛的Linux perf_event_open
API的覆盖。
Markus Stange的 linux-perf-event-reader
支持事件。该crate目前只处理计数器。
not-perf
项目是用Rust重写的 perf
,并包含大量处理Linux perf API的代码。
依赖项
约290KB