Карточка Middle Память и производительность обновлено
Инструменты профилирования Python
Вопрос
Какие инструменты профилирования Python вы знаете?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Время: cProfile + pstats или snakeviz, py-spy (сэмплирующий, к живому процессу), lineprofiler (по строкам), timeit (микробенчмарки). Память: tracemalloc, memray, objgraph.
Ответ
Время: cProfile + pstats или snakeviz, py-spy (сэмплирующий, к живому процессу), line_profiler (по строкам), timeit (микробенчмарки). Память: tracemalloc, memray, objgraph. В проде: APM и трейсы.
Разбор
Сэмплирующие профилировщики почти не замедляют программу, детерминированный cProfile замедляет заметно и искажает картину для мелких функций.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Память и производительность»
- Встроенные функции против ручного цикла
- Пересечение больших списков id
- Числа Фибоначчи без экспоненты
- Скользящая медиана потока на двух кучах
- Найти пару с суммой быстрее O(n²)
- Циклические ссылки и gc
- gc.freeze в форкающихся воркерах
- Поколения сборщика мусора