Я ускорил Python на 25% без использования профилировщика. Пять изменений кода, тщательное тестирование и одно обновление платформы, не требующее усилий, которое разрушило первоначальную цель. Вот на что именно нужно обращать внимание при поиске узких мест производительности в любом языке.
Большинство разработчиков сразу же обращаются к профилировщикам, но есть более быстрый подход: научиться выявлять закономерности, которые всегда требуют времени. Сегодня я разберу пять узких мест, которые я обнаружил, просто читая код Python: списковые генераторы, вызываемые в циклах, вычисляемые свойства повсюду, создание ненужных объектов и функции, которые выполняют ненужную работу. Мы подтверждаем каждое изменение данными о времени выполнения, и я откатываю ту оптимизацию, которая не побила предыдущий лучший результат.
Сюрприз? Python 3.13 обеспечил дополнительный прирост производительности на 8% без каких-либо изменений в коде. Если объединить оптимизацию кода (на 17% быстрее) с обновлением платформы (на 8% быстрее), мы не просто достигли цели в 16% — мы превзошли её, достигнув общего улучшения на 25%. И разрыв между Python и C++ продолжает сокращаться.
🔧 ЧТО ВЫ ИЗУЧИТЕ:
Распознавание образов для выявления проблем с производительностью (профилировщик не нужен)
Как точно измерять изменения в коде (методология измерения времени)
Когда использовать списки, а когда — включения (контекст важен)
Замена вычислений на подстановки (целочисленные объекты Python требуют больших затрат)
Дисциплина отката изменений, которые себя не оправдали
Почему Python 3.13 — первый релиз, ориентированный на производительность, за многие годы
⏱️ ТАЙМ-КОДЫ:
0:00 Почему это видео может изменить ваш подход к оптимизации Python
0:28 Как я измеряю реальный прирост производительности
1:00 Изменение №1 — Более быстрые игровые ячейки
2:20 Изменение №2 — Устранение накладных расходов на пересчёт
3:12 Изменение №3 — Упрощение логики Game Over
3:30 Изменение №4 — Удаление всей функциональности
4:26 Изменение №5 — Сокращение конкатенации
4:54 4 паттерна производительности, на которые стоит обратить внимание
5:08 Хирургическая настройка: моё мышление в области оптимизации
5:25 Обновление Python 3.13 — бесплатное ускорение
5:32 Python против C++ — разрыв сокращается
📊 РЕЗУЛЬТАТЫ ПРОИЗВОДИТЕЛЬНОСТИ:
Базовый показатель: 44,435 секунды
После изменений кода: 37,004 секунды (на 17% быстрее)
После Python 3.13: 30,8 секунды (всего на 25% быстрее)
Сравнение с C++: разрыв сокращается с 11 до 8 раз быстрее
💡 КЛЮЧЕВОЙ ВЫВОД:
Оптимизация производительности — это не дорогие инструменты или сложное профилирование. Речь идёт о распознавании паттернов: часто выполняемого кода, ресурсоёмких операций в циклах, пересчитываемых свойств и всего, что можно полностью исключить. Подтверждайте каждое изменение данными. Откатывайте то, что не работает. Затем посмотрите за пределы своего кода — улучшения платформы тоже важны.
Если эти паттерны имеют значение в Python (предположительно медленном), они будут иметь значение где угодно.
🔗 СМ. ТАКЖЕ:
Python против C++: • Just how Slow is Python?
Код: https://github.com/the-code-guy-yt/Ti...
---
Разработано с использованием: Python 3.12 → 3.13, крестики-нолики, минимакс, ИИ, строгая методология хронометража
#python #производительность #оптимизация #программирование #кодирование #программная инженерия #руководство по python #интервью по кодированию #программирование по python #разработка ПО
Стоковые видео и звуковые эффекты: - (Реферальная ссылка)
ArtlistIO: https://artlist.io/Guy-1799812
Информация по комментариям в разработке