tgoop.com/pro_python_code/1823
Create:
Last Update:
Last Update:
📊 Шпаргалка по Python-профайлингу: как найти узкие места в коде
Разбираем 4 мощных инструмента для анализа производительности и памяти в Python.
🧠 `cProfile` — встроенный профайлер времени
✅ Показывает, сколько времени тратится на каждую функцию
✅ Идеально для быстрого анализа
python -m cProfile your_script.py
Форматированный вывод с
pstats
:
python -m cProfile -o result.prof your_script.py
python -m pstats result.prof
Для Jupyter:
%load_ext cprofile
%cprofile some_function()
🐍
py-spy
— суперлёгкий sampling-профайлер✅ Не требует изменений в коде
✅ Работает с чужими процессами
✅ Без тормозов, можно запускать в проде
py-spy top --pid <PID>
py-spy record -o profile.svg -- python your_script.py
👉 Показывает flame graph: удобная визуализация bottleneck-функций.
🔥 `Scalene` — профайлинг CPU, памяти и аллокаций
✅ Отслеживает:
- сколько времени тратит CPU
- где происходят аллокации
- сколько памяти реально используется
pip install scalene
scalene your_script.py
👉 Выделяет проблемные строки, показывает выделение памяти по строчкам кода, а не только по функциям.
🧮 `memory_profiler` — анализ использования памяти
✅ Показывает, сколько памяти потребляет каждая строка
✅ Полезен для data science скриптов
pip install memory-profiler
Добавь декоратор:
from memory_profiler import profile
@profile
def my_func():
...
Запуск:
python -m memory_profiler your_script.py
💡 Как выбрать?
| Инструмент | Что профилирует | Подходит для |
|--------------------|----------------------|------------------------------|
| `cProfile` | Время (встроенно) | Быстрый старт, базовый анализ |
| `py-spy` | Время (sampling) | Прод, чужие процессы, flame graphs |
| `Scalene` | Время + память + аллокации | Глубокий анализ по строкам |
| `memory_profiler` | Только память | Data science, отладка RAM |
BY Python RU
Share with your friend now:
tgoop.com/pro_python_code/1823