应用程序探查器¶
这个模块提供了一个中间件,用 cProfile
模块。这有助于识别代码中可能减慢应用程序速度的瓶颈。
- class werkzeug.middleware.profiler.ProfilerMiddleware(app, stream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, sort_by=('time', 'calls'), restrictions=(), profile_dir=None, filename_format='{method}.{path}.{elapsed:.0f}ms.{time:.0f}.prof')¶
包装一个WSGi应用程序并分析每个请求的执行情况。对响应进行缓冲,以便更准确地计时。
如果
stream
给出,pstats.Stats
在每次请求后都会写入。如果profile_dir
给出,cProfile
数据文件保存到该目录中,每个请求一个文件。可以通过传递自定义文件名
filename_format
.如果是字符串,则将使用str.format()
以下字段可用:{{method}}
-请求方法;获取、发布等。{{path}}
-请求路径或“根”不应存在。{{elapsed}}
-请求的已用时间。{{time}}
-请求的时间。
如果它是可调用的,则将使用wsgi调用它
environ
并应返回文件名。- 参数:
app (WSGIApplication) -- 要包装的wsgi应用程序。
stream (t.IO[str] | None) -- 将统计信息写入此流。禁用
None
.sort_by (t.Iterable[str]) -- 用于排序统计信息的列的元组。参见
pstats.Stats.sort_stats()
.restrictions (t.Iterable[str | int | float]) -- 用于筛选统计信息的一组限制。参见
pstats.Stats.print_stats()
.profile_dir (str | None) -- 将配置文件数据文件保存到此目录。
filename_format (str) -- 配置文件数据文件名的格式字符串,或返回名称的可调用字符串。见上述说明。
from werkzeug.middleware.profiler import ProfilerMiddleware app = ProfilerMiddleware(app)
Changelog
在 0.15 版本发生变更: 即使在
profile_dir
是给定的,可以通过传递禁用stream=None
.在 0.15 版本加入: 补充
filename_format
.在 0.9 版本加入: 补充
restrictions
和profile_dir
.