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

#345 in Unix APIs

Download history 2049/week @ 2024-11-17 2314/week @ 2024-11-24 1137/week @ 2024-12-01 1955/week @ 2024-12-08 1051/week @ 2024-12-15 326/week @ 2024-12-22 460/week @ 2024-12-29 1129/week @ 2025-01-05 1735/week @ 2025-01-12 1336/week @ 2025-01-19 1528/week @ 2025-01-26 1674/week @ 2025-02-02 1529/week @ 2025-02-09 2032/week @ 2025-02-16 1745/week @ 2025-02-23 2068/week @ 2025-03-02

7,451 downloads per month
Used in 8 crates

MIT license

115KB
2.5K SLoC

perfcnt Build Status Crates.io

A library to program performance counters in rust.

Documentation

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
~49K SLoC