Simple benchmarking tool for a module, function, or block of code.
pip install mbench
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 │
└──────────────────┴───────────────────┘
from mbench import profile
@profile
def some_function():
print("Hello")
from mbench import profiling
with profiling:
run_anything()
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.
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.
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.
mbench
is distributed under the terms of the MIT License.