19 releases
0.8.0 | Mar 3, 2022 |
---|---|
0.7.1 | Apr 7, 2021 |
0.7.0 | Feb 27, 2021 |
0.6.0 | Jun 18, 2020 |
0.0.2 | Nov 29, 2015 |
#349 in Unix APIs
7,062 downloads per month
Used in 8 crates
115KB
2.5K
SLoC
perfcnt

A library to program performance counters in rust.
Documentation
- API Documentation
- See the
examples/
directory for more code-snippets on how to use the library to create counters.
Provided Programs
- perfcnt-list: Lists all architecture specific events available on the current machine (currently only supports Intel x86).
Known limitations
- Linux support without breakpoints and tracepoints
- No Windows or MacOS X support
- Missing raw AMD and ARM aarch64 events
lib.rs
:
Example usage:
use perfcnt::{AbstractPerfCounter, PerfCounter};
use perfcnt::linux::{PerfCounterBuilderLinux, HardwareEventType};
let mut pc: PerfCounter =
PerfCounterBuilderLinux::from_hardware_event(HardwareEventType::CacheMisses)
.finish().expect("Could not create the counter");
pc.start().expect("Can not start the counter");
pc.stop().expect("Can not start the counter");
let res = pc.read().expect("Can not read the counter");
println!("Measured {} cache misses.", res);
Dependencies
~4.5MB
~50K SLoC