Как профилировать свой проект Python
Делиться

Заставьте его работать, затем сделайте его красивым, затем, если вам действительно, действительно нужно, сделайте его быстрым. В 90 процентах случаев, если вы сделаете его красивым, он уже будет быстрым. Так что, действительно, просто сделайте его красивым! (Источник)
— Джо Армстронг (соавторы языка программирования Erlang).
Это последняя статья о Python из серии «Наука о данных: от школы до работы». С самого начала вы узнали, как управлять своим проектом Python с помощью UV, как писать чистый код, используя принципы PEP и SOLID, как обрабатывать ошибки и использовать loguru для логирования своего кода, а также как писать тесты.
Теперь вы в состоянии создать работающий, готовый к производству код. Но код никогда не бывает идеальным и всегда может быть улучшен. Последний (необязательный, но настоятельно рекомендуемый) шаг в создании кода — оптимизация.
Чтобы оптимизировать код, вам нужно иметь возможность отслеживать, что в нем происходит. Для этого мы используем инструменты, называемые Profilers . Они генерируют профили вашего кода. Это набор статистических данных, описывающих, как часто и как долго выполняются различные части программы. Они позволяют выявить узкие места и части кода, которые потребляют слишком много ресурсов. Другими словами, они показывают, где ваш код следует оптимизировать.
Сегодня в Python появилось так много профайлеров, что профайлер по умолчанию в Pycharm называется yappi, что означает «еще один профайлер Python».
Поэтому эта статья не является исчерпывающим списком всех существующих профилировщиков. В этой статье я представляю инструмент для каждого аспекта кода, который мы хотим профилировать: память, время и потребление CPU/GPU. Другие пакеты будут упомянуты с некоторыми ссылками, но не будут подробно описаны.
Источник: towardsdatascience.com



























