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

Uploaded Source

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

Hashes for perfy-0.27.tar.gz
Algorithm Hash digest
SHA256 633e27054433aab445bb95d4726714fcf688da12c63c0b5ff0bb5155be79cdd0
MD5 0d706552546422c750e79f7c8c33dbbe
BLAKE2b-256 a3ed9ec8600948de5142618d6ad3f3ff22a72190e89ae59ec496c3dd119659f4

See more details on using hashes here.

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