Skip to main content

Estimate Asymptotic Runtime Complexity from Bytecode executions

Project description

Python Performance Analysis Library or py-pal is a bytecode profiling toolkit.

Installation

This project requires CPython to run. Install Python >= 3.7, then install py-pal by running:

pip install py-pal

Documentation

TBA

Overview

Calling py-pal as module with

python -m py_pal file.py

or

pypal file.py

Measure specific functions using the decorator:

from py_pal.core import profile

@profile
def test():
    pass

Using the context manager:

from py_pal.tracer import Tracer

with Tracer() as t:
    pass

Using the API:

from py_pal.estimator import ComplexityEstimator
from py_pal.tracer import Tracer


t = Tracer()
t.trace()

# Your function
pass

t.stop()
estimator = ComplexityEstimator(t)
res = estimator.export()

# Do something with the resulting DataFrame
print(res)

Modes

Profiling and Performance Testing

Tracing processes

Development

To run the all tests run:

pip install -r dev-requirements.txt pytest tests

FAQ

Why not use a standard profiler?

Using absolute timing data vs synthetic timing data using opcodes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for py-pal, version 0.0.1
Filename, size File type Python version Upload date Hashes
Filename, size py_pal-0.0.1-cp37-cp37m-manylinux1_x86_64.whl (276.1 kB) File type Wheel Python version cp37 Upload date Hashes View hashes
Filename, size py_pal-0.0.1-cp37-cp37m-manylinux2010_x86_64.whl (276.1 kB) File type Wheel Python version cp37 Upload date Hashes View hashes
Filename, size py_pal-0.0.1-cp38-cp38-manylinux1_x86_64.whl (316.0 kB) File type Wheel Python version cp38 Upload date Hashes View hashes
Filename, size py_pal-0.0.1-cp38-cp38-manylinux2010_x86_64.whl (316.0 kB) File type Wheel Python version cp38 Upload date Hashes View hashes
Filename, size py-pal-0.0.1.tar.gz (78.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page