Simple benchmarking tool for a module, function, or block of code.
pip install mbenchfrom 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
profilemefunction 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
profilemefunction 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.