A simple time, ram & vram python profiler.
Project description
A simple time and memory Python profiler
Installation
pip install tmprofile
Usage
1. As a context manager
from tmprofile import Profile
with Profile(name, ...) as profiler:
f(...) # some intensive code
# profile is automatically saved as a json file.
# display elapsed time, RAM & VRAM consumption evolution
profiler.print()
profiler.plot()
2. As a decorator
from tmprofile import profile
@profile()
f(...) # some intensive code
# profile is automatically saved as a json file.
Parameters
name (str)
: Name of the profiler. Will be used to name the saved file. Required for context manager. For decorator, will use fonction' name if no name is provided.verbose (bool)
: If True, will print logged values at the end of profiling (i.e. on exit as a context manager, on function's return as a decorator). Defaults to False.gpu_idx (int)
: Which gpu's VRAM consumption has to be monitored. Default to0
.time_delta (float)
: Time to wait (in second) between two RAM / VRAM consumption logging. Defaults to0.2
.output_dir (str | Path)
: Where to write the logged values (as json). Defaults to.tmprofile
.filename (str | Path, optional)
: Name of the saved json file. If no name is given, will used the profiler name (seename
above).
Saved logs
Each time it is called, the profiler will saved a file.
The filepath will be <output_dir>/filename.json
. By default, <output_dir>
is .tmprofile/
and <filename>
is:
<name>.json
ifname
was specified.profile.json
if the profiler is a context manager andname
was NOT specified.<module>::<function>.json
if the profiler is a decorator andname
was NOT specified.
Interrupt
Since this profiler runs in a separate process, it will gracefully shutdown if the main programm is interrupted.
Disclaimer
The core of this code (asynchronous RAM/VRAM logging) is taken from Thomas Rouch's code here.
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
tmprofile-0.0.4.tar.gz
(7.2 kB
view hashes)
Built Distribution
Close
Hashes for tmprofile-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b338852ed489a6a542a2a3ec1ff8fac8c707a054137d873b117f00d291e4d504 |
|
MD5 | 44cf028d7613f355a5700338bce0296e |
|
BLAKE2b-256 | da2bcb994b435bf2f1342a9fceb569ff40a5fcd95fa9f490c0b3a0f581228c2b |