repoze.profile 1.1
Aggregate profiling for WSGI requests
repoze.profile README
This package provides a WSGI middleware component which aggregates profiling data across all requests to the WSGI application. It provides a web GUI for viewing profiling data.
Installation
Install using setuptools, e.g. (within a virtualenv):
$ easy_install repoze.profile
Configuration via Python
Wire up the middleware in your application:
from repoze.profile.profiler import AccumulatingProfileMiddleware
middleware = AccumulatingProfileMiddleware(
app,
log_filename='/foo/bar.log',
cachegrind_filename='/foo/cachegrind.out.bar',
discard_first_request=True,
flush_at_shutdown=True,
path='/__profile__'
)
The configuration options are as follows:
- ``log_filename`` is the name of the file to which the accumulated profiler statistics are logged. - ``cachegrind_filename`` is the optional name of the file to which the accumulated profiler statistics are logged in the KCachegrind format. - If ``discard_first_request`` to true (the default), then the middleware discards the statistics for the first request: the rationale is that there are a bunch of lazy / "first time" initializations which distort measurement of the application's normal performance. - If ``flush_at_shutdown`` is true (the default), profiling data will be deleted when the middleware instance disappears (via its __del__). If it's false, profiling data will not be deleted. - ``path`` is the URL path to the profiler UI. It defaults to ``/__profile__``.
Once you have some profiling data, you can visit path in your browser to see a user interface displaying profiling statistics (e.g. http://localhost:8080/__profile__).
Configuration via Paste
Wire the middleware into a pipeline in your Paste configuration, for example:
[filter:profile]
use = egg:repoze.profile#profile
log_filename = myapp.profile
cachegrind_filename = cachegrind.out.myapp
discard_first_request = true
path = /__profile__
flush_at_shutdown = true
...
[pipeline:main]
pipeline = egg:Paste#cgitb
egg:Paste#httpexceptions
profile
myapp
Once you have some profiling data, you can visit path in your browser to see a user interface displaying profiling statistics.
Reporting Bugs / Development Versions
Visit http://bugs.repoze.org to report bugs. Visit http://svn.repoze.org to download development or tagged versions.
Changelog
1.1 (2009-10-06)
- 100% test coverage.
- Get rid of spurious measurements of testing scaffolding in profile output (show no calls that are inside r.profile itself).
1.0 (2009-06-04)
- Relax the pinned requirement on elementtree < 1.2.7.
0.9 (2009-05-10)
- Made the pyprof2calltree dependency conditional on the Python version. This package depends on Python >= 2.5.
0.8 (2009-02-25)
- 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.
0.7 (2009-02-08)
- 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.
0.6 (2008-08-21)
discard_first_request = false did not work.
- Clearing the profile data from the user interface did not properly
discard profiler state.
0.5 (2008-06-11)
- Initial PyPI release.
0.4 (2008-05-07)
- Remove dependency-link to http://dist.repoze.org to prevent easy_install from adding that to its search path.
- Incorporated a patch from Alec Flett <alecf@metaweb.com> to uses cProfile, if available, rather than pure Python profile.
- Bump ez_setup.py version.
0.3 (2008-02-20)
- 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.
0.2 (2008-02-20)
- Added a browser UI.
- Added a knob to control discard at shutdown.
0.1 (2008-02-08)
- Initial release.
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| repoze.profile-1.1.tar.gz (md5) | Source | 2009-10-07 05:19:13.804932 | 14KB | 243 | |
- Author: Agendaless Consulting <repoze-dev at lists repoze org>
- Home Page: http://www.repoze.org
- Keywords: web application server wsgi zope
- License: BSD-derived (http://www.repoze.org/LICENSE.txt)
- Categories
- Package Index Owner: chrism, hannosch
- DOAP record: repoze.profile-1.1.xml
Log in to rate this package.
