skip to navigation
skip to content

repoze.profile 1.0

Aggregate profiling for WSGI requests

Latest Version: 1.1

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.0 (unreleased)

  • 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.0.tar.gz (md5) Source 2009-06-04 17:56:43.113698 13KB 950

Log in to rate this package.