✅ Чек-лист: оптимизация Python-скрипта на скорость
Если хотите, чтобы ваш код работал быстрее, перед релизом пробегитесь по этому списку:
🎯 Циклы и генераторы
✓ Используйте генераторы вместо списков, если можно ((x for x in ...))
✓ Старайтесь избегать вложенных циклов без необходимости
✓ Для больших коллекций — применяйте map(), filter(), itertools
🎯 Работа с памятью
✓ Списковые включения вместо append в цикле
✓ Удаляйте лишние переменные (del)
✓ Используйте slots в классах для экономии памяти
🎯 Функции и оптимизация кода
✓ Кэшируйте тяжёлые функции через functools.lru_cache
✓ Профилируйте код с помощью cProfile и timeit
✓ Избегайте лишних импортов в горячем коде
🎯 Работа с данными
✓ Заменяйте циклы на векторизацию через NumPy, если можно
✓ Для больших файлов — используйте стриминг (чтение по частям)
✓ Не держите в памяти всё сразу — работайте батчами
🎯 Общие практики
✓ Минимизируйте работу со строками
✓ Оптимизируйте регулярные выражения
✓ Используйте встроенные функции Python — они быстрее самописных решений
Как замерить реальный эффект:
— Время выполнения (time / timeit)
— Использование памяти (memory_profiler)
— Профилирование "узких мест" (cProfile, line_profiler)
Азбука айтишника #буст