Utils for benchmark.
Project description
Benchmark utils
Utils for benchmark - wrapper over python timeit.
Tested on python 3.7 - 3.11
Install
Install from pypi:
pip install benchmark_utils
Or install from github repo:
pip install git+https://github.com/ayasyrev/benchmark_utils.git
Basic use.
Lets benchmark some (dump) functions.
from time import sleep
def func_to_test_1(sleep_time: float = 0.1, mult: int = 1) -> None:
"""simple 'sleep' func for test"""
sleep(sleep_time * mult)
def func_to_test_2(sleep_time: float = 0.11, mult: int = 1) -> None:
"""simple 'sleep' func for test"""
sleep(sleep_time * mult)
Let's create benchmark.
from benchmark_utils import Benchmark
bench = Benchmark(
[func_to_test_1, func_to_test_2],
)
bench
output
Benchmark(func_to_test_1, func_to_test_2)
Now we can benchmark that functions.
bench()
output
Func name | Sec / run
func_to_test_1: 0.10 0.0%
func_to_test_2: 0.11 -9.6%
We can run it again, all functions, some of it, exclude some and change number of repeats.
bench.run(num_repeats=10)
output
Func name | Sec / run
func_to_test_1: 0.10 0.0%
func_to_test_2: 0.11 -8.8%
After run, we can prunt results - sorted or not, reversed, compare results with best or not.
bench.print_results(reverse=True)
output
Func name | Sec / run
func_to_test_2: 0.11 0.0%
func_to_test_1: 0.10 9.7%
We can add functions to bencmark as list of funtions (or partial) ar as dictionary: {"name": function}
.
bench = Benchmark([
func_to_test_1,
partial(func_to_test_1, 0.12),
partial(func_to_test_1, sleep_time=0.11),
])
bench
output
Benchmark(func_to_test_1, func_to_test_1(0.12), func_to_test_1(sleep_time=0.11))
bench.run()
output
Func name | Sec / run
func_to_test_1: 0.10 0.0%
func_to_test_1(sleep_time=0.11): 0.11 -8.9%
func_to_test_1(0.12): 0.12 -16.5%
bench = Benchmark({
"func_1": func_to_test_1,
"func_2": func_to_test_2,
})
bench
output
Benchmark(func_1, func_2)
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
benchmark_utils-0.2.3.tar.gz
(12.6 kB
view hashes)
Built Distribution
Close
Hashes for benchmark_utils-0.2.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1455968d36ac7582aa2c26e58536cddf093df36879902e2f44b36eacd87c42ac |
|
MD5 | 7dad9756fddc581fa829888dca6ea4cd |
|
BLAKE2b-256 | 18d289aa5e995a4c91a80ff387fd203e5e0d3f98c9dcc88384921ca9a90e5f49 |