Simple Benchmarking Library.
Project description
mbench
Simple benchmarking tool for a module, function, or block of code.
Installation
pip install mbench
Usage
from mbench import profileme
profileme()
def some_function():
print("Hello")
some_function()
Profile Information for
__main__.test_get_object_speed
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
┃ Metric ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
│ Duration │ 1.461318 seconds │
│ CPU time │ 24.613764 seconds │
│ Memory usage │ 250.56 MB │
│ GPU usage │ 0.00 B │
│ GPU usages │ │
│ I/O usage │ 0.00 B │
│ Avg Duration │ 0.292264 seconds │
│ Avg CPU time │ 4.922753 seconds │
│ Avg Memory usage │ 50.11 MB │
│ Avg GPU usage │ 0.00 B │
│ Avg GPU usages │ │
│ Avg I/O usage │ 0.00 B │
│ Total calls │ 5 │
└──────────────────┴───────────────────┘
As a Decorator
from mbench import profile
@profile
def some_function():
print("Hello")
As a Context Manager
from mbench import profiling
with profiling:
run_anything()
when calling
Functions you want to profile must
- Be defined in the same module that the
profileme
function is being called. - Be called after
profileme(when="calling")
is called.
when called
Functions you want to profile must
- Be called in the same module that the
profileme
function is being called. - Be called after
profileme(when="called")
is called.
Docs
profileme(when: Literal['called', 'calling'] = 'called')
Profile all functions in a module. Set `when` to 'calling' to profile only the functions called by the target module.
License
mbench
is distributed under the terms of the MIT License.
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
mbench-0.0.11.tar.gz
(11.9 kB
view hashes)
Built Distribution
mbench-0.0.11-py3-none-any.whl
(12.3 kB
view hashes)