Skip to content
This repository has been archived by the owner on Jan 29, 2022. It is now read-only.

A "simple" python profiler

License

MIT, Unknown licenses found

Licenses found

MIT
LICENCE
Unknown
LICENCE-Twisted-core
Notifications You must be signed in to change notification settings

jeshan/simple-python-profiler

Repository files navigation

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.

About

A "simple" python profiler

Topics

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENCE
Unknown
LICENCE-Twisted-core

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published