KyleBlog.cn 文章 标签 关于
文章 标签 关于

Flask性能调优(查看每次请求涉及的函数调用耗时)

开启flask性能调优

代码示例:

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


app = Flask(__name__)
# 注意这里的ProfilerMiddleware
app.wsgi_app = ProfilerMiddleware(app.wsgi_app)


@app.route("/")
def hello_world():
    time.sleep(2)
    return "<p>Hello, World!</p>"


app.run()

上述代码中,通过 app.wsgi_app = ProfilerMiddleware(app.wsgi_app) 开启了Flask性能调优功能。

这里,我们还编写了一个用于测试的hello_world函数,它sleep了两秒,以便模拟耗时的操作,后面我们会从日志里看到效果。

分析flask性能调优日志

执行上述函数,开启一个http服务,浏览器中访问它。默认地址是http://127.0.0.1:5000。访问后,控制台会输出一堆信息,大概内容如下:

PATH: '/'
         610 function calls (594 primitive calls) in 2.003 seconds

   Ordered by: internal time, call count

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    2.001    2.001    2.001    2.001 {built-in method time.sleep}
        1    0.000    0.000    0.001    0.001 C:\python\.venv\lib\site-packages\flask\ctx.py:346(match_request)

这里我只截取前面的几行,可以看到,排在最上面的就是 time.sleep函数,消耗了2秒钟,它便是hello_world函数的性能瓶颈了。

本文为kyleblog.cn原创,转载请注明出处:https://www.kyleblog.cn/posts/flask_profile

发布日期:2023-03-08 联系作者