Skip to main content

The Python Performance Tuner

Project description

PPT - The Python Performance Tuner

ppt is a tool for tuning the performance of Python programs.

Install

pip install ppt

Example

Timing

import ppt
import time

if __name__ == '__main__':

    for _ in range(10):

        ppt.time('big')
        time.sleep(0.5)  # Big computation

        ppt.time('medium')
        time.sleep(0.3)  # Medium computation

        ppt.time('fast')
        time.sleep(0.01)  # Fast computation

    # Stop current timing
    ppt.stop()

    # Print current timings
    ppt.summary()

    # Detailed statistics from pstats
    ppt.stats()

Output

big: 40 function calls in 5.006 seconds
medium: 40 function calls in 3.003 seconds
fast: 40 function calls in 0.101 seconds
********** big **********
         40 function calls in 5.006 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
       10    5.005    0.501    5.005    0.501 {built-in method time.sleep}
       10    0.000    0.000    0.000    0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:42(time)
       10    0.000    0.000    0.000    0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:17(stop)
       10    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}


********** medium **********
         40 function calls in 3.003 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
       10    3.003    0.300    3.003    0.300 {built-in method time.sleep}
       10    0.000    0.000    0.000    0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:42(time)
       10    0.000    0.000    0.000    0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:17(stop)
       10    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}


********** fast **********
         40 function calls in 0.101 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
       10    0.101    0.010    0.101    0.010 {built-in method time.sleep}
        9    0.000    0.000    0.000    0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:42(time)
       10    0.000    0.000    0.000    0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:17(stop)
        1    0.000    0.000    0.000    0.000 /home/seba-1511/Dropbox/Dev/perf/ppt/profiler.py:53(stop)
       10    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}

Plotting

The following start a Visdom server and plots 4 lines of random samples.

import ppt
import random, time

if __name__ == '__main__':
    ppt.plot(1)
    ppt.plot(1)
    ppt.plot(1)
    ppt.plot(1)
    for i in range(10):
        for session in ['a', 'b', 'c', 'd']:
            time.sleep(0.2)
            ppt.plot(random.random(), session)
    ppt.close()

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

ppt-0.0.5.tar.gz (3.8 kB view details)

Uploaded Source

File details

Details for the file ppt-0.0.5.tar.gz.

File metadata

  • Download URL: ppt-0.0.5.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.3

File hashes

Hashes for ppt-0.0.5.tar.gz
Algorithm Hash digest
SHA256 3854d903bf9f67eb5a537587c38659a99a1ea48d2cecb6204d3cfb4ff1e9ac3f
MD5 1d5eb0c419e439fd3dd3c75e28d6a9e8
BLAKE2b-256 df6f1e075e31a1ac263e2a786fe9aee5254ce7a247c34db28da93e177e32008e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page