println_cpi/
println-cpi.rs1fn main() -> std::io::Result<()> {
2 use perf_event::events::Hardware;
3 use perf_event::{Builder, Group};
4
5 let mut group = Group::new()?;
6 let cycles = Builder::new()
7 .group(&mut group)
8 .kind(Hardware::CPU_CYCLES)
9 .build()?;
10 let insns = Builder::new()
11 .group(&mut group)
12 .kind(Hardware::INSTRUCTIONS)
13 .build()?;
14
15 let vec = (0..=51).collect::<Vec<_>>();
16
17 group.enable()?;
18 println!("{:?}", vec);
19 group.disable()?;
20
21 let counts = group.read()?;
22 println!(
23 "cycles / instructions: {} / {} ({:.2} cpi)",
24 counts[&cycles],
25 counts[&insns],
26 (counts[&cycles] as f64 / counts[&insns] as f64)
27 );
28
29 Ok(())
30}