extern crate perfcnt; extern crate x86; use perfcnt::linux::PerfCounterBuilderLinux; use perfcnt::{AbstractPerfCounter, PerfCounter}; pub fn main() { let counter_description = x86::perfcnt::intel::events() .unwrap() .get("BR_INST_RETIRED.ALL_BRANCHES") .unwrap(); let mut pc: PerfCounter = PerfCounterBuilderLinux::from_intel_event_description(counter_description) .exclude_idle() .exclude_kernel() .finish() .expect("Could not create counter"); pc.start().expect("Can not start the counter"); println!(""); pc.stop().expect("Can not stop the counter"); println!( "{}: {:?}", counter_description.brief_description, pc.read().expect("Can not read counter") ); pc.reset().expect("Can not reset the counter"); }