Skip to main content

Easily add performance counters to your code

Project description

PerfCounters

Coverage Status license

Easily add performance counters to your python code.

PerfCounter is a thoroughly tested library that make it easy to add counters to any python code to measure intermediate timings and values. Its various reporting mechanisms (pretty print, json, html, latex, markdown... ) makes it easy to analyze and report performance measurement regardless of your workflow.

Perfcounters natively support two kind of counters:

  • TimeCounters() that are used to track timings.
  • ValueCounters() thatr used if you want to track values.

For each counter you can track intermediate values using the lap() API if needed.

Basic usage

Here is a short example that demonstrate how to track time. Tracking values looks very similarly.

import random
from perfcounters import TimeCounters

cnts = TimeCounters()  # init the counter collection.

cnts.start('random')  # start a timing counter called random.
for x in range(100000):
    int(random.random())
cnts.stop('random')  # stop the random counter

cnts.start('randint')  # start a timing counter called randint.
for x in range(1000000):
    random.randint(0, 1)
cnts.stop('randint')  # stop the randint counter.

cnts.report(rounding=5) # report print all counter values in a nicely formated table.

For more advanced usage take look at the demo jupyter notebook.

Installation

The easiest way to install perfcounters is via pip:

pip install --user -U perfcounters

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

perfcounters-3.0.1.tar.gz (10.9 kB view hashes)

Uploaded Source

Built Distribution

perfcounters-3.0.1-py3-none-any.whl (10.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page