DEV Community

CodingShower
CodingShower

Posted on

4 3

Profiling Flask Apps

When you're working on Flask apps, at some point one of your routes could get slow in terms of performance (returning response to the client).

The best way to approach such problems (slow programs) is to use a profiler to analyse which parts of your code is slowing down the application.

In Flask we can use the Werkzeug Profiler Middleware to implement profiling in our Flask apps. It is super simple!

from flask import Flask
from werkzeug.middleware.profiler import ProfilerMiddleware

app = Flask(...)
app.wsgi_app = ProfilerMiddleware(app.wsgi_app)
Enter fullscreen mode Exit fullscreen mode

That's it! Now when you make a request to one of your endpoints, in your console log, you'll notice stats getting dumped.

----------------------------------------
PATH: '/search'
         7508936 function calls (7492431 primitive calls) in 3.824 seconds

   Ordered by: internal time, call count

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.701    0.701    2.152    2.152 ...
   101132    0.485    0.000    0.485    0.000 ...
   166457    0.351    0.000    1.258    0.000 ...
  1440656    0.226    0.000    0.347    0.000 ...
5048/4702    0.165    0.000    0.327    0.000 ...
       ...

----------------------------------------
Enter fullscreen mode Exit fullscreen mode
  • If you'd like to learn more about configuring the profiler, head over to this article.
  • If you'd like to learn more about using a statistical profiler, head over to this article.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Cloudinary image

Video API: manage, encode, and optimize for any device, channel or network condition. Deliver branded video experiences in minutes and get deep engagement insights.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay