A powerful multiline alternative to timeit
Project description
Timerit
A powerful multiline alternative to Python’s builtin timeit module.
Docs will be written at https://timerit.readthedocs.io/en/latest/
Description
Easily do robust timings on existing blocks of code by simply indenting them. There is no need to refactor into a string representation or convert to a single line.
This is the standalone version of a utility currently in ubelt.
Installation
From pypi:
pip install timerit
From github:
pip install git+https://github.com/Erotemic/timerit.git
Examples
The quick and dirty way just requires one indent.
>>> import math >>> from timerit import Timerit >>> for _ in Timerit(num=200, verbose=2): >>> math.factorial(10000) Timing for 200 loops Timed for: 200 loops, best of 3 time per loop: best=2.469 ms, mean=2.49 ± 0.037 ms
Use the loop variable as a context manager for more accurate timings or to incorporate an setup phase that is not timed. You can also access properties of the Timerit class to programmatically use results.
>>> import math >>> from timerit import Timerit >>> t1 = Timerit(num=200, verbose=2) >>> for timer in t1: >>> setup_vars = 10000 >>> with timer: >>> math.factorial(setup_vars) >>> print('t1.total_time = %r' % (t1.total_time,)) Timing for 200 loops Timed for: 200 loops, best of 3 time per loop: best=2.064 ms, mean=2.115 ± 0.05 ms t1.total_time = 0.4427177629695507
There is also a simple one-liner that is comparable to IPython magic:
Compare the timeit version:
>>> %timeit math.factorial(100) 564 ns ± 5.46 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
With the Timerit version:
>>> Timerit(100000).call(math.factorial, 100).print() Timed for: 1 loops, best of 1 time per loop: best=4.828 µs, mean=4.828 ± 0.0 µs
Project details
Download files
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 timerit-0.2.1-py2.py3-none-any.whl (9.9 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes View |
Hashes for timerit-0.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04d90100d124ec1c58c2091c299d84ce1e143b4f7e321f5f39bc3f12bd66a4f7 |
|
MD5 | 683167921405f8a02e93a0c46e73b9ab |
|
BLAKE2-256 | 6cdc1bea352d27a736193fea2bf726cd0a39927cbb5529c72038aed7fcac7bc4 |