Skip to main content

A Python sampling profiler for AWS Lambda functions (and not only).

Project description

pylaprof

pylaprof is a Python library that allows you to profile functions or sections of code.

As a decorator:

from pylaprof import profile

@profile()
def handler(event, context):
  ...

As a context manager:

from pylaprof import Profiler

def main():
  ...
  with Profiler():
    # Only code inside this context will be profiled.
    ...

It is built around three main abstractions: the profiler, the sampler, and the storer.

The profiler is the main component of pylaprof, it takes care of taking snapshots of your program's stack at regular intervals and feeding them to the sampler for processing; at the end of the profiling session, it will then ask the sampler for a report and provide it to the storer.

Take a look at the source for more documentation and some pre-implemented samplers and storers or here for some usage examples.

Features

  • Accessible: pylaprof's code is thoroughly documented and written to be read and understood by other humans.

  • Extensible: you can write your own sampler or storer to generate reports in the format you like and store them where and how you want.

  • Zero external dependencies[^1].

  • Close to zero impact on performances (check benchmark for more details).

  • Reliable: pylaprof was built with the context of long-running applications or continuously invoked lambda functions in mind. It will never break your code or pollute your standard output or error with unwanted messages.

  • Turn on/off profiling with an environment variable.

  • Store the profiling report only if execution takes longer than a threshold.

[^1]: boto3 is optional and required only if you want to use the S3 storer.

pylaprof-merge

pylaprof-merge is a CLI tool to merge multiple stackcollapse reports into a single one. This might come in handy if you want to get an aggregated overview of a function or piece of code that is executed frequently for short periods. It is installed automatically if you get pylaprof with pip.

Installation

pip install pylaprof

Or just copy-paste the pylaprof directory where you need it.

Credits

  • This library is heavily inspired to pprofile: thanks to its authors for writing such accessible and well-documented code.
  • Thanks to @jvns for writing and distributing some of her wizard zines for free: that's what got me into the rabbit hole of profiling in the first place.

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

pylaprof-0.4.6.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

pylaprof-0.4.6-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file pylaprof-0.4.6.tar.gz.

File metadata

  • Download URL: pylaprof-0.4.6.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.7.12 Linux/5.11.0-1028-azure

File hashes

Hashes for pylaprof-0.4.6.tar.gz
Algorithm Hash digest
SHA256 9448929e218b3a2d63bb6ef13d36481f93d529f14ab11eff89c2e3afa6bf574d
MD5 513d3879431eebb5d093df6d2ae468c5
BLAKE2b-256 cd46256bc2e69ece84b0b75253a240df54cbce17bffaeea035952e2a620eec1b

See more details on using hashes here.

File details

Details for the file pylaprof-0.4.6-py3-none-any.whl.

File metadata

  • Download URL: pylaprof-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.7.12 Linux/5.11.0-1028-azure

File hashes

Hashes for pylaprof-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3308f00d9889c6070f758ac254c1d8548056646ef8438bee98130963d1a37249
MD5 feee419cb0ccc2d5dca28bdbea0e2ead
BLAKE2b-256 fddaf1eec61ffc32cc9665b073658433eb50fb2d52db0113428b1c60ea0390ef

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