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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 969eaa0af8ad4bf1fac4ce0880f50e8ce00b82898d2510dc9e030f27c3220d09 |
|
MD5 | 21e2c6a65c8f2af6d21e8822fad2f578 |
|
BLAKE2b-256 | deed8676340fff77e2535a1062690a361dfc6520af713cbc45cc34d27e9a4bb3 |
File details
Details for the file simple_python_profiler-0.2-py2.py3-none-any.whl
.
File metadata
- Download URL: simple_python_profiler-0.2-py2.py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.22.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce38f672d92acafb54f74024f1b713ddfee2f13fe59e42ebc45394c538d37f55 |
|
MD5 | 491c88417fdb4eca6b166a5e824afd82 |
|
BLAKE2b-256 | 0d82d2556b2c19a708f2957fef128e00296c2d3fc8c6e33bc62a0b86bf673f74 |