Easily add performance counters to your code
Easily add performance counters to your python code.
PerfCounter is a thoroughly tested library that make it easy to add multiple counters to any python code to measure intermediate timing and values. Its various reporting mechanisms makes it easy to analyze and report performance measurement regardless of your workflow.
The easiest way to install perfcounters is via pip:
pip install --user -U perfcounters
Type of counter available
Perfcounters natively support two kind of counters:
timing counters and
Timing counter usage
Timing counters are used to measure time elapsed in a section of the code. They are started with the
start(...) method and are stopped with the
stop(...) method or
Here is a simple example:
counters = PerfCounters() # init counter collection counters.start('loop') # start a timing counter #do something in the code counters.stop('loop') # stop counter counters.report() # report all counters
Value counter usage
Counters used to track values. They are either directly set to a given value with the
set() method or incremented with the
Here is a basic example:
counters = PerfCounters() counters.set('mycounter', 39) # set counter value to 39 #do something in the code counters.increment('mycounter', 3) # increment counter by 3 counters.get('mycounter') # get the value of the counter 42
End to end example
Here is an end to end example that demonstrate all the basic feature of the librairy:
from perfcounters import PerfCounters from random import randint # init counters counters = PerfCounters() num_iterations = randint(100000, 1000000) # setting a value counter to a given value counters.set('num_iterations', num_iterations) # starting a timing counter counters.start('loop') for i in range(1000): v = randint(0, 1000000) # incrementing a value counter to sum the generated values counters.increment('total_value', v) # stopping a timing counter counters.stop('loop') # reporting counters counters.report()
This basic example will produce a result like this:
-=[Value counters]=- +----------------+-----------+ | name | value | +================+===========+ | total_value | 494280557 | +----------------+-----------+ | num_iterations | 372159 | +----------------+-----------+ -=[Timing counters]=- +--------+------------+ | name | value | +========+============+ | loop | 0.00195169 | +--------+------------+
Note: you technically don't need to stop a timing counter before a report. If you don't do it the value reported will be the delta between start time and the time the
report() function was called. The counter will keep running until it is stopped.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size perfcounters-1.0.6-py3-none-any.whl (9.3 kB)||File type Wheel||Python version py3||Upload date||Hashes View hashes|
|Filename, size perfcounters-1.0.6.tar.gz (6.3 kB)||File type Source||Python version None||Upload date||Hashes View hashes|
Hashes for perfcounters-1.0.6-py3-none-any.whl