WSGI middleware for line-by-line profiling


Keywords
cython, hacktoberfest, line-profiler, profiler, python, wsgi, wsgi-middleware
License
Other
Install
pip install wsgi-lineprof==0.4.0

Documentation

wsgi_lineprof

PyPI version PyPI Supported Python Versions GitHub Actions (Tests) Documentation Status

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.

At a Glance

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.