wsgi_lineprof is a WSGI middleware for line-by-line profiling.
wsgi_lineprof has the following features:
- WSGI middleware: It can be integrated with any WSGI-compatible applications and frameworks including Django, Pyramid, Flask, Bottle, and more.
- Easily pluggable: All configurations for profiling in one place. Users don't need to make any changes to their application.
wsgi_lineprof is not recommended to be used in production environment because of the overhead of profiling.
You can use wsgi_lineprof as a WSGI middleware of existing applications.
$ pip install wsgi_lineprof
Apply wsgi_lineprof to the existing WSGI web application:
from wsgi_lineprof.middleware import LineProfilerMiddleware
app = LineProfilerMiddleware(app)
Start the web application and access the application. wsgi_lineprof writes results to stdout every time an HTTP request is processed by default. You can see the output like this in your console:
... (snip) ... File: ./app.py Name: index Total time: 1.00518 [sec] Line Hits Time Code =================================== 9 @app.route('/') 10 def index(): 11 1 1005175 time.sleep(1) 12 1 4 return "Hello world!!" ... (snip) ...
Also, you can check the result on your web browser by accessing the special endpoint /wsgi_lineprof/
.
Please check the documentation for more details.