extern crate perfcnt; extern crate x86; use perfcnt::linux::PerfCounterBuilderLinux as Builder; use perfcnt::linux::SoftwareEventType as Software; use perfcnt::{AbstractPerfCounter, PerfCounter}; pub fn main() { let mut pc: PerfCounter = Builder::from_software_event(Software::ContextSwitches) .on_cpu(0) .for_all_pids() .finish() .expect("Could not create counter"); pc.start().expect("Can not start the counter"); std::thread::sleep(std::time::Duration::new(1, 0)); pc.stop().expect("Can not stop the counter"); println!( "Context Switches/s: {:?}", pc.read().expect("Can not read counter") ); pc.reset().expect("Can not reset the counter"); }