Skip to main content

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

Uploaded Source

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