Python предоставляет несколько специализированных инструментов для профилирования, каждый из которых подходит для анализа разных аспектов производительности. Выбор правильного инструмента зависит от того, что тебе нужно измерить.
Используй cProfile для получения статистики по вызовам функций, включая количество вызовов и суммарное время. Он встроен в Python и идеален как первый шаг в поиске узких мест.
python -m cProfile -s cumtime my_script.py
Используй timeit для микробенчмарка небольших фрагментов кода. Он запускает код несколько раз, чтобы получить надёжное среднее значение, что делает его идеальным для сравнения альтернативных реализаций.
import timeit
timeit.timeit("sum(range(1000))", number=10000)
Используй tracemalloc для отслеживания выделений памяти на уровне Python. Он встроен и помогает понять, какие части кода выделяют больше всего памяти с течением времени.
Используй line_profiler, когда нужен детальный тайминг каждой строки внутри конкретной функции. Нужно пометить целевую функцию декоратором @profile и запустить через kernprof.
cProfile выявил подозрительную функциюИспользуй memory_profiler для анализа потребления памяти по каждой строке. Как и line_profiler, он использует декоратор @profile и идеален для диагностики утечек памяти или неожиданных выделений внутри функции.
cProfile — найди медленные функцииline_profiler для детального таймингаtracemalloc или memory_profilertimeitcProfile — это лучший инструмент для измерения времени выполнения отдельной строки кода внутри функции.
Новый — ещё не проверен сообществом
Вы