15 промтов для оптимизации производительности кода

Введение

Каждый разработчик сталкивался с ситуацией, когда код работает, но медленно. Профилирование и ручной рефакторинг требуют времени, а AI может стать ассистентом, который ускорит поиск узких мест. Я собрал 15 проверенных промтов, которые использую в своей работе ежедневно. Они подходят для ChatGPT, Claude, GitHub Copilot и других LLM. Все примеры — из реальных проектов: от бэкенда на Go до фронтенда на React. Попробуйте — и оптимизация перестанет быть гаданием.

1. Анализ временной сложности

Промт:

Оцени временную сложность следующего кода. Если она выше O(n log n), предложи оптимизированную версию. Объясни, почему новый вариант быстрее.

Пример использования:
Код — функция поиска дубликатов через вложенные циклы (O(n²)). AI предложит использовать HashSet (O(n)).

Код до:

def find_duplicates(arr):
    duplicates = []
    for i in range(len(arr)):
        for j in range(i+1, len(arr)):
            if arr[i] == arr[j] and arr[i] not in duplicates:
                duplicates.append(arr[i])
    return duplicates

Код после (предложение AI):

def find_duplicates(arr):
    seen = set()
    duplicates = set()
    for x in arr:
        if x in seen:
            duplicates.add(x)
        else:
            seen.add(x)
    return list(duplicates)

Этот промт помогает сразу выявить алгоритмическую неэффективность.

2. Поиск узких мест с помощью профилирования

Промт:

Ниже — вывод профилировщика (cProfile/py-spy) для Python-скрипта. Укажи топ-3 функции, которые потребляют больше всего времени, и предложи конкретные оптимизации для каждой.

Пример:
Передаёшь текст вывода профилировщика. AI анализирует, где str конкатенация вместо join, где излишние вызовы len() в цикле, и даёт исправления.

Почему работает: LLM обучены на множестве кейсов профилирования, они знают типичные паттерны тормозов.

3. Оптимизация запросов к базе данных

Промт:

У меня есть SQL-запрос, который выполняется 5 секунд. EXPLAIN ANALYZE прилагается. Предложи индексы, рефакторинг или денормализацию для ускорения до <200 мс. Учти, что база — PostgreSQL 15.

Пример:
Запрос с JOIN на большую таблицу без индекса по внешнему ключу. AI предлагает создать индекс, переписать с подзапросом или использовать материализованное представление.

4. Бенчмарк-генератор

Промт:

Напиши на Go бенчмарк-тест для сравнения двух реализаций функции ParseInt: через strconv.Atoi и через fmt.Sscanf. Выведи результаты в формате ns/op и allocs/op.

Пример:
AI генерирует _test.go файл с корректными бенчмарками, запускаемыми через go test -bench=..

5. Рефакторинг с сохранением семантики

Промт:

Перепиши этот метод так, чтобы он выполнялся не более 50 мс при входных данных объёмом 10 000 элементов. Сохрани интерфейс и функциональность. Если возможно, используй многопоточность.

Пример:
Обработка списка строк с регулярными выражениями — AI заменит на компилированные паттерны и параллельную обработку через goroutines.

6. Анализ использования памяти

Промт:

Проанализируй этот класс на предмет утечек памяти (память растёт с каждым вызовом метода). Предложи исправления с учётом сборки мусора в C#.

Пример:
Класс подписывается на события, но не отписывается. AI добавляет Dispose и использует WeakReference.

7. Оптимизация рендеринга в React

Промт:

Этот React-компонент ререндерится при каждом изменении состояния родителя, хотя его пропсы не меняются. Добавь React.memo, useMemo и useCallback только там, где это действительно нужно. Объясни каждое изменение.

Пример:
Компонент списка с filter-функцией. AI оборачивает функцию в useCallback, а результат фильтрации — в useMemo.

8. Оптимизация циклов в JavaScript

Промт:

Дан массив из 100 000 объектов. Нужно быстро получить сумму поля 'price' для тех, у кого 'active' === true. Предложи самый быстрый вариант на ES2024 (for, reduce, for...of, forEach) и объясни, почему.

Пример:
AI может показать, что обычный for с локальной переменной работает быстрее декоративных методов, или наоборот — reduce с typed array.

9. Выбор структур данных

Промт:

У меня операция: часто искать элемент по ключу и редко добавлять новые. Какая структура данных в Java подойдёт лучше всего? Напиши пример с HashMap против TreeMap.

Пример:
AI объяснит, что HashMap даёт O(1) в среднем, а TreeMap — O(log n). Если порядок не важен, выбираем HashMap.

10. Кэширование и мемоизация

Промт:

Эта функция вычисляет факториал рекурсивно без кэша. Добавь мемоизацию (lru_cache или ручной словарь) и сравни производительность до/после на n=1000.

Пример:
AI генерирует код с functools.lru_cache и показывает, что время падает с экспоненциального до O(n).

11. Асинхронность и параллелизм

Промт:

Скрипт на Python выполняет 100 HTTP-запросов последовательно. Перепиши его с использованием asyncio и aiohttp, сохранив обработку ошибок. Добавь Semaphore для ограничения конкурентности до 10.

Пример:
AI заменяет requests на aiohttp, добавляет asyncio.gather и asyncio.Semaphore.

12. Оптимизация билда и сборки

Промт:

Время сборки webpack-проекта — 3 минуты. Предложи 5 конкретных шагов, как ускорить до <1 минуты: замена лоадеров, параллелизация, кэширование.

Пример:
AI советует thread-loader, cache-loader, swc-loader вместо babel-loader, и разделение кода.

13. Оптимизация сетевых запросов

Промт:

API возвращает 50 полей, но клиенту нужны только 5. Предложи вариант с GraphQL (указать выборочные поля) или bff-слой, который агрегирует и сокращает ответ. Сравни размер трафика.

Пример:
AI демонстрирует graphql-запрос с выделением полей и оценивает экономию в байтах.

14. Оптимизация на уровне ОС

Промт:

Серверное приложение на Linux использует 100% CPU при 100 RPS. Выполни strace и perf top. Какие syscall жрут больше всего? Предложи настройки ядра или альтернативные системные вызовы (epoll вместо select).

Пример:
AI анализирует вывод strace и указывает, что poll — узкое место, советует перейти на epoll.

15. Оптимизация по рекомендациям Google PageSpeed

Промт:

У меня оценка PageSpeed Insights 45/100. По пунктам: LCP 8 с, TBT 500 мс, CLS 0.3. Дай конкретные шаги для каждого показателя. Предложи код (lazy load, preload шрифтов, resizing images).

Пример:
AI генерирует IntersectionObserver для отложенной загрузки, вставляет атрибуты loading="lazy", предлагает оптимизировать изображения через srcset.

Заключение

Эти промты — не волшебство, а инструменты. Они экономят часы ручного анализа, если правильно сформулировать задачу и критически оценить ответ. Советую начать с промта #2 (профилирование) — он часто даёт самый быстрый выигрыш. Экспериментируйте, адаптируйте под свой стек, и скоро оптимизация станет рутинной задачей, которую вы делегируете AI.

Попробуйте любой промт уже сегодня — и увидите разницу в производительности.

← Все статьи

Комментарии

Читайте также

Как я виброкодил Lighthouse и заменил UI-тесты: честный опыт

27 июля 2026

Как Vibe Coding создал чёрную дыру у вас в комнате: разбор физически точного проекта с Hacker News

27 июля 2026

Как не поддаться панике: разбираемся в шумихе вокруг китайского ИИ (и при чём тут Vibe Coding)

27 июля 2026

Teensy 4.x + ASI Biont: интеграция мощного микроконтроллера с AI-агентом для умного дома и промышленности

27 июля 2026

Освойте ESG и отчетность по устойчивому развитию (ООН, GRI, SASB, TCFD, ЕС) с обучением на основе ИИ | Asibiont

27 июля 2026

Как подключить Salesforce Commerce Cloud к AI-агенту ASI Biont: автоматизация заказов, рекомендаций и аналитики без программирования

27 июля 2026

Как превратить Raspberry Pi с HDMI в умный дашборд с AI-агентом ASI Biont: пошаговое руководство

27 июля 2026

«Свой» уходит в опенсорс: вайб-темы, RAG поверх шифра и объектив, который знает контекст

27 июля 2026

Как подключить устройство RS‑485 к AI‑агенту ASI Biont: пошаговое руководство по интеграции для промышленной автоматизации

27 июля 2026