Профилировщик приложений
Этот модуль предоставляет middleware, который профилирует каждый запрос с помощью модуля 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}- Метод запроса; GET, POST и т. д. -
{path}- Путь запроса или ‘root’, если путь не указан. -
{elapsed}- Время выполнения запроса в миллисекундах. -
{time}- Время запроса.
Если это вызываемый объект, он будет вызван с WSGI
environи должен вернуть строку с именем файла. Словарьenvironтакже будет содержать ключ"werkzeug.profiler", заполненный словарем, содержащим следующие поля (в будущем может быть добавлено больше): -{elapsed}- Время выполнения запроса в миллисекундах. -{time}- Время запроса.- Параметры:
-
- 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)
Изменено в версии 3.0: Добавлен ключ
"werkzeug.profiler"к параметруfilename_format(environ)с полямиelapsedиtime.Изменения
Изменено в версии 0.15: Данные профилирования записываются, даже если
profile_dirзадан, и могут быть отключены путём передачиstream=None.Добавлена в версии 0.15: Добавлен
filename_format.Добавлена в версии 0.9: Добавлены
restrictionsиprofile_dir. -
© 2007 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/3.0.x/middleware/profiler/