Cirron measures how many CPU instructions and system calls a piece of Python code executes.
Project description
Cirron
Cirron measures a piece of Python code and report back several performance counters: CPU instruction count, branch misses, page faults and time spent measuring. It uses the Linux perf events interface or @ibireme's KPC demo on OSX.
It can also trace syscalls using strace
, Linux only!
Prerequisites
- Linux with perf events support / Apple ARM OSX
- C++
- Python 3.x
Installation
Clone the repository:
git clone https://github.com/s7nfo/Cirron.git
pip install ./Cirron
The Python wrapper automatically compiles the C++ library (cirronlib.cpp) on first use.
Usage
Performance Counters
from cirron import Collector
# Start collecting performance metrics
with Collector() as collector:
# Your code here
# ...
# Retrieve the metrics
print(collector.counters)
Syscalls
from cirron import Tracer, to_tef
with Tracer() as tracer:
# Your code here
# ...
# Stop collecting and retrieve the trace
print(tracer.trace)
# Save the trace for ingesting to Perfetto
open("/tmp/trace", "w").write(to_tef(trace))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cirron-0.2.1.tar.gz
(14.2 kB
view hashes)
Built Distribution
Cirron-0.2.1-py3-none-any.whl
(15.1 kB
view hashes)