Quick and easy python benchmarking.
Project description
Quickly find where your code is spending its time.
Benchit is intended to be a minimalistic library that times how long it takes to get from point A to point B. It helps detect unoptimized code.
Benchit is only compatible with python 3. For python 2 support, use benchit==0.2.6 (https://pypi.python.org/pypi/bench-it/0.2.6)
Installation
pip install bench-it
Example
from benchit import BenchIt from time import sleep def demo_benchmark(): b = BenchIt() # starts the timer # do stuff sleep(1); b() # Add marker after this code. Code used as marker name. sleep(.2); sleep(.3); sleep(.4); b("More stuff done") # Add a custom named marker for i in range(1, 5): sleep(.1); b() # Code can be marked in a loop b.display() # Display output as a table demo_benchmark() BenchIt +-----------------+----------------+------------+------+----------+---------+---------+ | Marker | Method | Line | Hits | Avg Time | Runtime | Percent | +-----------------+----------------+------------+------+----------+---------+---------+ | sleep(1) | demo_benchmark | demo.py:9 | 1 | 1.01341 | 1.01341 | 43.33 | | More stuff Done | demo_benchmark | demo.py:14 | 1 | 0.91278 | 0.91278 | 39.03 | | sleep(.1) | demo_benchmark | demo.py:17 | 4 | 0.10306 | 0.41223 | 17.63 | +-----------------+----------------+------------+------+----------+---------+---------+ Total runtime: 2.33860
How to Use
Instantiating the class starts the timer. BenchIt is run as a singleton. Re-instantiating anywhere in your code will pull in the previously instantiated timer. To create a new timer, initialize BenchIt with a unique name.
b = BenchIt() b2 = BenchIt() # b == b2 b3 = BenchIt("Timer A") # b != b3
Set a marker after some code.
call_a_method(); b() # Quickly add a marker after a method method1() method2() b("Two methods called") # Or create a manual marker after a chunk of code
Stop and display the table for analysis.
b.display()
Methods
benchit.__init__() Instantiate and start the timer.
benchit.__call__(marker_name) Add marker at this point.
benchit.stop() Optionally, stop the timer at a point.
benchit.display() Display the table. Stops the timer if running.
Credits
Special thanks Luke Maurits for prettytable*
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
Built Distribution
File details
Details for the file bench-it-1.0.1.tar.gz
.
File metadata
- Download URL: bench-it-1.0.1.tar.gz
- Upload date:
- Size: 16.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e14c4b72df01d2470fa73200c03c3283b4a5f53d257a728af8e4adbde76d36c |
|
MD5 | 8a6b5d5191d704c3494552da67c985e5 |
|
BLAKE2b-256 | 841d715aeb5db587ecd462c0be5ed69959466d6681a296905a8fc40722a15d99 |
File details
Details for the file bench_it-1.0.1-py2.py3-none-any.whl
.
File metadata
- Download URL: bench_it-1.0.1-py2.py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7f588f99de025735f00e24c8bc56b32da0a86f2e9fa6fe97befaa878cca2a46 |
|
MD5 | b21deb22eed8a8b0359dc48aacf7fcff |
|
BLAKE2b-256 | e3c47f91020f875a0e7f1ca880b5ac7c047e021366408f608e106c60799670e8 |