Aggregate profiling for WSGI requests
This package provides a WSGI middleware component which aggregates profiling data across all requests to a WSGI application. It provides a minimal web GUI for viewing profiling data.
Install using setuptools, e.g. (within a virtualenv):
$ easy_install repoze.profile
For details on using the various components, please see the documentation in docs/index.rst. A rendered version of that documentation is also available online:
Please report bugs in this package to
Obtaining Source Code
Download development or tagged versions of the software by visiting:
- No changes since 2.0b1.
- Add support for building docs / exercising doctest snippets under tox.
- Add setup.py docs alias (installs Sphinx).
- Note support for PyPy.
- Add support for Python 3.3.
- Drop support for Python 2.4 / 2.5.
- This release is the last which will maintain support for Python 2.4 / Python 2.5.
- Added an unwind configuration option. If unwind is True, the iterable returned by the downstream application will be consumed and turned into a list during profiling. This allows you to profile applications which return generators or other iterables that do “real work”.
- Applications which return generators that do “real work” will now need to supply the unwind flag to configuration to see that work in profile output.
- Added an option to filter profile output by filename. Thanks to Shish for the patch.
- Put a lock around “index” method in order to prevent exceptions when trying to view profile data as it’s being generated. Closes http://bugs.repoze.org/issue168.
- Removed these dependencies: meld3, paste.
- A new paste.filter_app_factory entry point has been added named main which points to the profiler. This allows for the simplified spelling egg:repoze.profile in paste.ini files when referring to the profile middleware (instead of the older, more verbose egg:repoze.profile#profiler. The older alias continues to work as well.
- The new canonical import location for the profiling middleware is repoze.profile.ProfileMiddleware. Older imports continue to work.
- Remove ez_setup.py.
- Python 3.2 compatibility.
- Converted documentation to Sphinx.
- Ensure we consume generators returned by the wrapped application. Fixes http://bugs.repoze.org/issue169
- 100% test coverage.
- Get rid of spurious measurements of testing scaffolding in profile output (show no calls that are inside r.profile itself).
- Relax the pinned requirement on elementtree < 1.2.7.
- Made the pyprof2calltree dependency conditional on the Python version. This package depends on Python >= 2.5.
- Added optional support for directly writing out the profiling data in the KCacheGrind format.
- Avoid a dependency on elementtree when used with Python 2.5 and later. In those Python versions we used the built-in xml.etree support.
- discard_first_request = true did not work!
- Added tests for discard_first_request and flush_at_shutdown.
- Converted CHANGES.txt to ReST.
- Bump ez_setup.py version.
- discard_first_request = false did not work.
- Clearing the profile data from the user interface did not properly
- discard profiler state.
- Initial PyPI release.
- Added compatibility with Python 2.5.
- Made setup.py depend explicitly on ElementTree 1.2.6: meld needs it but meld isn’t a setuptools package.
- Added a browser UI.
- Added a knob to control discard at shutdown.
- Initial release.