Skip to main content

A simple cli-based profiler for Python

Project description

simple_python_profiler

An early look at a simple Python profiler, written in Python. Get started by typing pip install simple_python_profiler.

Description

A profiler that times every function call and reports back the top 100 slowest functions.

logs every function call means it's non-sampling, hence resource-intensive. If that's unsuitable, check out something like py-spy.

Usage:

# your-script.py

from simple_python_profiler import Profiler
if __name__ == '__main__':
    with Profiler():
        run_your_code()

This will decorate all your top-level functions in your modules. System (built-in) and pip-installed packages (those that go in dist-packages) are excluded.

Since the default behaviour is to not include nested functions, you can profile your nested functions too as follows:

from simple_python_profiler import profile_recursive

# your-module.py

def top_level_function():

    @profile_recursive
    def inner_function():
        print('in inner fn')

This recursive feature relies on the codetransformer dependency. However, it has a few bugs in recent versions of Python. If you encounter runtime exceptions with simple_python_profiler, use the second, non-recursive decorator:

from simple_python_profiler import profile

# your-module.py

def top_level_function():

    @profile
    def inner_function():
        print('in inner fn')

Releasing on PyPI

  • pipenv shell
  • flit build
  • flit publish

Enter password when prompted.

TODO

  • option to include system packages

Released under the MIT licence. See file named LICENCE for details.

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

simple_python_profiler-0.2.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

simple_python_profiler-0.2-py2.py3-none-any.whl (5.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file simple_python_profiler-0.2.tar.gz.

File metadata

  • Download URL: simple_python_profiler-0.2.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.22.0

File hashes

Hashes for simple_python_profiler-0.2.tar.gz
Algorithm Hash digest
SHA256 969eaa0af8ad4bf1fac4ce0880f50e8ce00b82898d2510dc9e030f27c3220d09
MD5 21e2c6a65c8f2af6d21e8822fad2f578
BLAKE2b-256 deed8676340fff77e2535a1062690a361dfc6520af713cbc45cc34d27e9a4bb3

See more details on using hashes here.

File details

Details for the file simple_python_profiler-0.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for simple_python_profiler-0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ce38f672d92acafb54f74024f1b713ddfee2f13fe59e42ebc45394c538d37f55
MD5 491c88417fdb4eca6b166a5e824afd82
BLAKE2b-256 0d82d2556b2c19a708f2957fef128e00296c2d3fc8c6e33bc62a0b86bf673f74

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