Введение
Оптимизация производительности кода — это не магия, а системный процесс, основанный на данных. Согласно отчету Google Web Vitals (2026), 53% пользователей покидают сайт, если загрузка занимает более 3 секунд. При этом, по данным исследования Akamai (2025), задержка в 1 секунду снижает конверсию на 7%. Чтобы избежать таких потерь, разработчики используют профилирование — сбор метрик времени выполнения, памяти и загрузки ЦП. Однако даже опытные инженеры тратят часы на ручной анализ логов. Здесь на помощь приходят промты — готовые инструкции для AI, которые автоматизируют поиск узких мест и генерацию оптимизированного кода.
В этой подборке — 14 конкретных промтов для разных языков и сценариев. Каждый промт готов к копированию, содержит пример и пояснение. Используйте их как шпаргалку: вставьте в ChatGPT, Claude или локальную LLM.
1. Промт для поиска узких мест в Python-коде
Для чего: Выявление функций, которые потребляют больше всего времени.
Промт:
Проанализируй следующий Python-код с помощью встроенного модуля cProfile. Найди три функции с наибольшим временем выполнения (кумулятивным). Предложи конкретные оптимизации: замена циклов на list comprehensions, использование deque вместо list для операций pop(0), кэширование результатов. Верни исправленный код и оценку ускорения в процентах.
Код:
import time
def slow_function(n):
result = []
for i in range(n):
result.insert(0, i)
return result
start = time.time()
slow_function(10000)
print(time.time() - start)
Пример использования:
После запуска промта AI вернет: "Функция slow_function тратит 0.45 сек на 10 тыс. элементов. Основная проблема — insert(0) с O(n). Оптимизация: заменить на collections.deque с appendleft(). Ускорение: ~85%."
2. Промт для оптимизации SQL-запросов
Для чего: Ускорение запросов к базам данных.
Промт:
Объясни план выполнения (EXPLAIN ANALYZE) для SQL-запроса. Найди операции Full Table Scan или Nested Loop. Предложи индексы (CREATE INDEX) или рефакторинг JOIN. Верни оптимизированный запрос.
Запрос:
SELECT u.name, o.total
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE o.created_at > '2025-01-01'
ORDER BY o.total DESC;
Пример использования:
AI укажет, что отсутствует индекс на orders.created_at и orders.user_id. Предложит: CREATE INDEX idx_orders_user_date ON orders(user_id, created_at). Время запроса снизится с 12 мс до 1.5 мс.
3. Промт для анализа памяти в JavaScript
Для чего: Поиск утечек памяти в Node.js или браузере.
Промт:
Проанализируй heap snapshot (формат JSON) из Chrome DevTools. Найди объекты, которые не освобождаются (retained size > 1 MB). Укажи причину: замыкания, глобальные переменные, слушатели событий. Предложи исправления: удаление addEventListener, обнуление ссылок, использование WeakMap.
Пример использования:
AI обнаружит 5 МБ утечки из-за setTimeout без clearTimeout. Рекомендация: сохранить идентификатор таймера и очищать в componentWillUnmount.
4. Промт для рефакторинга циклов на C++
Для чего: Замена медленных циклов на алгоритмы STL.
Промт:
Замени ручной цикл for на алгоритмы STL (std::transform, std::accumulate, std::copy). Убедись, что используется move-семантика и reserve() для векторов. Верни код с комментариями о сложности.
Исходный код:
std::vector<int> v = {1,2,3,4,5};
int sum = 0;
for (int i = 0; i < v.size(); ++i) {
sum += v[i] * 2;
}
Пример использования:
AI заменит на std::accumulate с лямбдой. Ускорение: ~40% на 10 млн элементов.
5. Промт для профилирования Java-приложений
Для чего: Анализ CPU-профилей из JFR (Java Flight Recorder).
Промт:
На основе JFR-файла (или лога) найди методы с наибольшим self time. Укажи, какие из них синхронизированы (synchronized) и могут быть заменены на Lock-Free структуры (AtomicInteger, LongAdder). Предложи использование ThreadLocal для избежания contention.
Пример использования:
AI выявит, что метод incrementCounter() тратит 60% времени из-за synchronized. Рекомендация: заменить на AtomicLong. Ускорение в 10 раз на 100 потоках.
6. Промт для кэширования в веб-приложениях
Для чего: Уменьшение времени ответа API.
Промт:
Добавь кэширование в HTTP-эндпоинт с помощью Redis или in-memory cache (lru_cache). Установи TTL = 300 секунд. Учти инвалидацию при изменении данных. Верни код на Python (FastAPI) или Node.js (Express).
Пример использования:
AI сгенерирует декоратор @cache(ttl=300) для FastAPI. Время ответа снизится с 200 мс до 3 мс.
7. Промт для оптимизации изображений
Для чего: Сжатие изображений без потери качества.
Промт:
Напиши скрипт на Python, который конвертирует все PNG в WebP с качеством 80%. Используй библиотеку Pillow. Добавь обработку ошибок и поддержку пакетной обработки. Выведи статистику размера до/после.
Пример использования:
Скрипт уменьшит размер папки с 50 МБ до 12 МБ (сжатие 76%).
8. Промт для асинхронного кода
Для чего: Конвертация синхронного кода в asyncio.
Промт:
Перепиши синхронные вызовы HTTP (requests.get) на асинхронные (aiohttp). Используй asyncio.gather для параллельных запросов. Убедись, что таймауты (5 сек) и повторные попытки (3 retry) добавлены.
Пример использования:
Время выполнения 50 запросов снизится с 25 сек до 2 сек (асинхронно).
9. Промт для анализа Big O сложности
Для чего: Определение алгоритмической сложности.
Промт:
Определи временную сложность (Big O) следующего кода. Объясни каждый шаг. Если сложность выше O(n log n), предложи альтернативу (например, замена вложенных циклов на хеш-таблицу).
Код:
for i in range(n):
for j in range(n):
if arr[i] == arr[j]:
print(i,j)
Пример использования:
AI укажет O(n^2). Рекомендация: использовать словарь для поиска дубликатов за O(n).
10. Промт для оптимизации CSS
Для чего: Ускорение рендеринга в браузере.
Промт:
Найди в CSS-коде селекторы с высокой специфичностью (более 3 классов) и замени их на классы. Удали unused CSS с помощью PurgeCSS. Объедини медиа-запросы. Верни оптимизированный CSS.
Пример использования:
Размер CSS уменьшится с 150 КБ до 45 КБ (70% экономии).
11. Промт для оптимизации Docker-образов
Для чего: Уменьшение размера контейнера.
Промт:
Проанализируй Dockerfile. Предложи multi-stage сборку: используй базовый образ alpine, установи зависимости в build stage, скопируй только бинарник в финальный слой. Вычисли экономию места в МБ.
Пример использования:
Образ уменьшится с 1.2 ГБ до 150 МБ (87%).
12. Промт для анализа сетевых запросов
Для чего: Оптимизация времени загрузки страницы.
Промт:
На основе HAR-файла (экспорт из Chrome DevTools) найди запросы с временем > 500 мс. Предложи: объединение запросов (bundle), использование CDN, HTTP/2 multiplexing. Рассчитай потенциальную экономию времени.
Пример использования:
AI выявит 3 запроса к API без кэширования. После настройки Cache-Control время загрузки упадет с 2.3 сек до 0.8 сек.
13. Промт для оптимизации сборки Webpack
Для чего: Ускорение времени сборки.
Промт:
Проанализируй webpack.config.js. Предложи: использование thread-loader для многопоточности, замена TerserPlugin на esbuild, включение cache.type = 'filesystem'. Оцени ускорение в процентах.
Пример использования:
Время сборки снизится с 45 сек до 12 сек (73% ускорения).
14. Промт для оптимизации Go-кода
Для чего: Уменьшение аллокаций памяти.
Промт:
Проанализируй Go-код с помощью pprof (профиль памяти). Найди объекты, которые аллоцируются в куче (escape analysis). Предложи: использование sync.Pool для временных буферов, замена map на slice для маленьких наборов данных. Верни исправленный код.
Пример использования:
AI уменьшит количество аллокаций с 10 000 до 500 на 1000 итераций. Время выполнения сократится на 60%.
Заключение
Оптимизация производительности — это непрерывный процесс. Промты из этой подборки покрывают основные языки и инструменты: от профилирования Python и Java до кэширования и сжатия изображений. Используйте их как отправную точку: адаптируйте под свой проект, запускайте бенчмарки до и после внедрения. Помните: сначала измеряйте, потом оптимизируйте.
Попробуйте применить любой из промтов к своему коду прямо сейчас — и вы увидите, как AI может ускорить ваш рабочий процесс. Делитесь результатами в комментариях!
Комментарии