Perfy - a lightweight performance tracer for python
Project description
perfy
Perfy - a lightweight profiling tool for Python
Mark your functions and methods as trace-enabled with @perfy decorator:
@perfy
def trace_this_function():
# do something
Also, you can trace arbitrary blocks of your code using with statement:
with perfy('name of your choice'):
# your code here
After running your code, print report using
perfy.report()
Example:
from time import sleep
from perfy import perfy
@perfy # <-- use decorator to track function calls
def func_sleep():
sleep(.02)
def sleep_loop():
with perfy('sleep loop'): # <-- use with-statement to track arbitrary block of code
for _ in range(10):
func_sleep()
# you can nest with-blocks and decorated function calls in any order:
@perfy # <-- a decorator on a top level function
def main():
sleep_loop() # <-- this functions has a traced block inside
with perfy('custom named block'): # <-- traced block
sleep(.1)
with perfy('inner block'): # <-- nested traced block
func_sleep()
func_sleep()
For above code perfy.report() will output:
----------------------------------Perfy report----------------------------------
Function/Method Time(sec.) Calls(count)
--------------------------------------------------------------------------------
main 0.350 1
└ sleep loop 0.206 1
└ func_sleep 0.205 10
└ custom named block 0.144 1
└ inner block 0.043 1
└ func_sleep 0.042 2
--------------------------------------------------------------------------------
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
perfy-0.27.tar.gz
(3.1 kB
view details)
File details
Details for the file perfy-0.27.tar.gz
.
File metadata
- Download URL: perfy-0.27.tar.gz
- Upload date:
- Size: 3.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 633e27054433aab445bb95d4726714fcf688da12c63c0b5ff0bb5155be79cdd0 |
|
MD5 | 0d706552546422c750e79f7c8c33dbbe |
|
BLAKE2b-256 | a3ed9ec8600948de5142618d6ad3f3ff22a72190e89ae59ec496c3dd119659f4 |