django-profiler
django-profiler is util for profiling python code mainly in django projects but can be used also on ordinary python code. It counts sql queries a measures time of code execution. It logs its output via standard python logging library and uses logger profiling. If your profiler name doesn’t contain any empty spaces e.g. Profiler(‘Profiler1’) django-profiler will log all the output to the profiling.Profiler logger.
Requirements
python 2.7+
Installation
Install via pip or copy this module into your project or into your PYTHON_PATH.
Configuration
django settings.py constants
PROFILING_LOGGER_NAME PROFILING_SQL_QUERIES
It is possible to change default django-profiler logger name by defining PROFILING_LOGGER_NAME = ‘logger_name’ in your django settings.py.
To log also sql queries into profiler logger set PROFILING_SQL_QUERIES to True in your django settings.py module.
Examples
Example 1
Using context manager approach. Output will be logged to profiling logger.
from profiling import Profiler
with Profiler('Complex Computation'):
# code with some complex computations
Example 2
Using context manager approach. Output will be logged to profiling.Computation logger.
from profiling import Profiler
with Profiler('Computation'):
# code with some complex computations
Example 3
Using standard approach. Output will be logged to profiling logger.
from profiling import Profiler
profiler = Profiler('Complex Computation')
profiler.start()
# code with some complex computations
profiler.stop()
Example 4
Using standard approach and starting directly in constructor. Output will be logged to profiling logger.
from profiling import Profiler
profiler = Profiler('Complex Computation', start=True)
# code with some complex computations
profiler.stop()
Example 5
Using decorator approach. Output will be logged to profiling.complex_computations logger.
from profiling import profile
@profile
def complex_computations():
#some complex computations
Example 6
Using decorator approach. Output will be logged to profiling.ComplexClass.complex_computations logger.
from profiling import profile
class ComplexClass(object):
@profile
def complex_computations():
#some complex computations
Example 7
Using decorator approach. Output will be logged to profiling.complex_computations logger. profile execution stats are logged to profiling.complex_computations logger.
from profiling import profile
@profile(stats=True)
def complex_computations():
#some complex computations
Example 8
Using decorator approach. Output will be logged to profiling.complex_computations logger. profile execution stats are printed to sys.stdout.
import sys
from profiling import profile
@profile(stats=True, stats_buffer=sys.stdout)
def complex_computations():
#some complex computations
Example 9
Using decorator approach. Output will be logged to profiling.ComplexClass.complex_computations logger. profile stats will be logged to profiling.ComplexClass.complex_computations.
from profiling import profile
class ComplexClass(object)
@profile(stats=True)
def complex_computations():
#some complex computations
Tests
Tested on evnironment
Xubuntu Linux 11.10 oneiric 64-bit
python 2.7.2+
python unittest
Running tests
To run the test run command:
$ python test.py $ python setup.py test
References
Metadata
Release files for django-profiler 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django-profiler-2.0.0.tar.gz | 6.1 kB | Without provenance | Details for django-profiler-2.0.0.tar.gz |
Release files / django-profiler-2.0.0.tar.gz
| Download URL | django-profiler-2.0.0.tar.gz |
|---|---|
| Size | 6.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ee5e5619521f1ce896753716f0eda947c402850450577a3a1e9b7204d9cbcf20
|
|
BLAKE2b-256 checksum How to use checksums |
6bc16a85b662c6812b3d51bd70d0624159ca80dd7085415e5080996c328833d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for django-profiler 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.