Quickly profile your code with a single line of code.
Project description
get-profile
A simple library to inject the most profiling bang-for-buck into a single line of code (decorator).
I.E.
import time
from get_profile import get_profile
def your_function_a():
time.sleep(1)
def your_function_b():
time.sleep(2)
@get_profile
def your_program():
your_function_a()
your_function_b()
if __name__ == '__main__':
your_program()
Would print something like this after your program has run:
Profiling results for "your_program":
===============================================================================================================================
| func | ncalls | tottime -r | percall -r | tottime | percall | callees |
===============================================================================================================================
| CALLABLE: your_program | 1 | 3.0073 | 3.0073 | 0.0003 | 0.0 | CALLABLE: your_function_a |
| LINENO: 13 | | | | | | LINENO: 6 |
| FILE: /Users/sonnygeorge/ | | | | | | FILE: /Users/sonnygeorge/get-profile/exa |
| get-profile/example.py | | | | | | mple.py |
| | | | | | | |
| | | | | | | CALLABLE: your_function_b |
| | | | | | | LINENO: 9 |
| | | | | | | FILE: /Users/sonnygeorge/get-profile/exa |
| | | | | | | mple.py |
-------------------------------------------------------------------------------------------------------------------------------
| <built-in method time.sle | 2 | 3.007 | 1.5035 | 3.007 | 2.0 | |
| ep> | | | | | | |
-------------------------------------------------------------------------------------------------------------------------------
| CALLABLE: your_function_b | 1 | 2.002 | 2.002 | 0.0 | 0.0 | <built-in method time.sleep> |
| LINENO: 9 | | | | | | |
| FILE: /Users/sonnygeorge/ | | | | | | |
| get-profile/example.py | | | | | | |
-------------------------------------------------------------------------------------------------------------------------------
| CALLABLE: your_function_a | 1 | 1.005 | 1.005 | 0.0 | 0.0 | <built-in method time.sleep> |
| LINENO: 6 | | | | | | |
| FILE: /Users/sonnygeorge/ | | | | | | |
| get-profile/example.py | | | | | | |
-------------------------------------------------------------------------------------------------------------------------------
Installation
get-profile can be installed with pip:
$ pip install get-profile
Decorator Parameters
Release 0.0.2 supports the following parameters for the get_profile decorator:
get_profile(
# topn limits the table to only the top n rows
top_n: int = 10,
# only_my_functions = True will filter out functions whose
# "func" field contains the regex pattern:
# r"/python[0-9]+\.[0-9]+/|<.*>",
# (a hacky way to limit the output to just your own functions)
only_my_functions: bool = False,
# sort_by is the column you would like to sort by (descending)
sort_by: str = "tottime -r",
# min_col is the column you would like to filter by (min_val)
min_col: str = "tottime -r",
# min_val is the minimum value for the min_col
min_val: float = 0.005,
# output_width is the width in chars of the output table
output_width: int = 150,
# toggles whether or not the "calees" column is printed
callees: bool = True,
)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file get-profile-0.0.2.tar.gz.
File metadata
- Download URL: get-profile-0.0.2.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c0eb7d88cca359d97c269d4e4249efb48d64621af81064f6bef3d832da18b6a
|
|
| MD5 |
610c5aa9f0d307e4c9efdf3d1ead8f2b
|
|
| BLAKE2b-256 |
0c8be931e6f4e367731f818ef155055f0ba5a4d46d25c42fd5e390dbc000ec77
|
File details
Details for the file get_profile-0.0.2-py3-none-any.whl.
File metadata
- Download URL: get_profile-0.0.2-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f45e1871ef92e60d02672b6143053e70654d04e67b733adb9b5e580f41711f9
|
|
| MD5 |
42b7b66f2b18c2a08bde26d7732dfff3
|
|
| BLAKE2b-256 |
126936525bc922abc0514b699a2f5154ee7fc198c9f5ac35a473bad19eee7d79
|