werkzeug.contrib.profiler
This module provides a simple WSGI profiler middleware for finding
bottlenecks in web application. It uses the profile
or
cProfile
module to do the profiling and writes the stats to the
stream provided (defaults to stderr).
Example usage:
from werkzeug.contrib.profiler import ProfilerMiddleware
app = ProfilerMiddleware(app)
- 2014 by the Werkzeug Team, see AUTHORS for more details.
class werkzeug.contrib.profiler.MergeStream(*streams)
An object that redirects [UNKNOWN NODE title_reference] calls to multiple streams. Use this to log to both [UNKNOWN NODE title_reference] and a file:
f = open('profiler.log', 'w')
stream = MergeStream(sys.stdout, f)
profiler = ProfilerMiddleware(app, stream)
class werkzeug.contrib.profiler.ProfilerMiddleware(app, stream=None, sort_by=('time', 'calls'), restrictions=(), profile_dir=None)
Simple profiler middleware. Wraps a WSGI application and profiles a request. This intentionally buffers the response so that timings are more exact.
By giving the [UNKNOWN NODE title_reference] argument, pstat.Stats files are saved to that directory, one file per request. Without it, a summary is printed to [UNKNOWN NODE title_reference] instead.
For the exact meaning of [UNKNOWN NODE title_reference] and [UNKNOWN NODE title_reference] consult the
profile
documentation.
New in version 0.9: Added support for [UNKNOWN NODE title_reference] and [UNKNOWN NODE title_reference].
- app – the WSGI application to profile.
- stream – the stream for the profiled stats. defaults to stderr.
- sort_by – a tuple of columns to sort the result by.
- restrictions – a tuple of profiling strictions, not used if dumping to [UNKNOWN NODE title_reference].
- profile_dir – directory name to save pstat files
werkzeug.contrib.profiler.make_action(app_factory, hostname='localhost', port=5000, threaded=False, processes=1, stream=None, sort_by=('time', 'calls'), restrictions=())
Return a new callback for werkzeug.script
that starts a local
server with the profiler enabled.
from werkzeug.contrib import profiler
action_profile = profiler.make_action(make_app)