PerfCounters
Experimental, do not use in production, could blow up your Rubies.
What
Read the CPU's performance counters from Ruby using perf_event_open(2)
.
Usage
require 'perf_counters'
events = [
Event::INSTRUCTIONS,
Event::CPU_CYCLES,
Event::CACHE_MISSES,
]
perf = PerfCounters::Measurement.new(
exclude_kernel: true,
events: events,
)
perf.start
# do something here
perf.stop
=> {:instructions=>3276, :cpu_cycles=>18651, :cache_misses=>24}
Contributing
Requirements
A modern Linux machine (unfortunately, most VMs don't virtualize perf counters)
with perf
installed.
Install
$ bin/setup
Compile
$ rake compile
Run tests
$ rake [test]