Skip to main content

A simple time, ram & vram python profiler.

Project description

A simple time and memory Python profiler

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 to 0.
  • time_delta (float): Time to wait (in second) between two RAM / VRAM consumption logging. Defaults to 0.2.
  • output_dir (str | Path): Where to write the logged values (as json). Defaults to .profile.
  • filename (str | Path, optional): Name of the saved json file. If no name is given, will used the profiler name (see name above).

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.1.tar.gz (6.4 kB view hashes)

Uploaded Source

Built Distribution

tmprofile-0.0.1-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page