7个版本
0.1.6 | 2024年5月21日 |
---|---|
0.1.5 | 2024年5月21日 |
0.1.4 | 2023年10月24日 |
0.1.2 | 2023年5月17日 |
在性能分析中排名71
每月下载367次
在perf-event2中使用
170KB
3.5K SLoC
perf-event-data
将perf_event_open
发出的数据解析为可用的Rust结构体。
入门指南
Record
类型是一个枚举,包含所有已知的记录类型。parse
模块包含将字节解析为已知记录所需的一切。
将所有这些组合起来,我们得到
use perf_event_data::endian::Native;
use perf_event_data::parse::{ParseConfig, Parser};
use perf_event_data::Record;
fn main() {
let data: &[u8] = &[
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00,
0x16, 0x4C, 0x01, 0x00, 0x17, 0x4C, 0x01, 0x00,
0x00, 0xA0, 0x48, 0x96, 0x4F, 0x7F, 0x00, 0x00,
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xA0, 0x48, 0x96, 0x4F, 0x7F, 0x00, 0x00,
0x2F, 0x2F, 0x61, 0x6E, 0x6F, 0x6E, 0x00, 0x00,
];
let config = ParseConfig::<Native>::default();
let mut parser = Parser::new(data, config);
let record: Record = parser.parse().expect("failed to parse the record");
// ...
}
另请参阅
perf-event2
crate 允许你设置采样性能事件计数器。你很可能需要这个或等效的crate,以便获取该crate解析的事件数据。linux-perf-event-reader
crate 提供了与这个crate类似的功能。
依赖关系
~580–780KB
~19K SLoC