5个版本
0.2.2 | 2023年11月2日 |
---|---|
0.2.1 | 2021年6月20日 |
0.2.0 | 2021年6月20日 |
0.1.1 | 2021年2月4日 |
0.1.0 | 2018年4月30日 |
#258 in Unix APIs
每月 39 次下载
用于 benchpmc
22KB
317 行
pmc-rs
pmc-rs
为在FreeBSD上与libpmc/hwpmc的性能监控计数器进行交互提供了一个安全抽象。
PMCs是CPU硬件的一部分,通常用于分析特定应用程序或算法的CPU微架构事件,例如L1/L2/L3缓存命中与缺失、每CPU时钟周期的指令数、TLB查找、分支预测错误等,以优化性能。
事件由CPU制造商定义(可以在Intel 64和IA-32架构软件开发者手册:第3B卷中找到,其中事件位于第18.2.1.2节“预定义架构性能事件”和“预定义架构性能事件的掩码和事件选择编码”表中)。
pmc-rs
利用libpmc
用户空间接口和hwpmc
内核模块在FreeBSD上。
版本兼容性
pmc-rs
的最新版本通常针对最新的FreeBSD版本。由于FreeBSD版本之间libpmc
的变化,与旧版FreeBSD的兼容性可能需要将pmc-rs
锁定到旧版发布。
FreeBSD版本 | 最新pmc-rs 发布 |
---|---|
FreeBSD 11 | v0.1.1 |
FreeBSD 12 | 不受支持 |
FreeBSD 13 | v0.2.0 |
FreeBSD 11之前的版本未经测试,但可能可以使用。
FreeBSD 12将C++链接到libpmc堆栈中,导致与Rust不兼容(见此问题)。幸运的是,FreeBSD 13并非如此。
未来改进
- 支持采样PMCs。
- 使用
RDPMC
指令读取计数器,以避免上下文切换。
依赖项
~170KB