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
get-profile-0.0.2.tar.gz
(5.5 kB
view details)
Built Distribution
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 |