Расширение для GigaCode
GigaPerf
Находит и решает проблемы производительности сервисов. Доказывает измерениями. Переводит в деньги.
Работает в контуре банка: GigaCode · СберЧат · Jira · Bitbucket · SonarQube · DropApp
Смотреть, как работает ↓Суть
Как это работает
Находит
Эвристики, SonarQube, JFR-профиль и DropApp работают независимо друг от друга.
Чинит
Точечный фикс подтверждённой находки. Один фикс — один коммит.
Доказывает
Тесты и бенчмарк ×5 после каждой правки. Не подтвердилось — git revert.
Заводит тикет
Jira: тикет с находкой, обоснованием и findings.json.
Открывает PR
Bitbucket: pull request с метриками до и после, ревьюеры назначены.
Считает деньги
Ускорение переводится в рубли по тарифу vCPU-часа.
СберЧат
Результаты приходят туда, где живёт команда
Сводка каждого прогона — сообщением в канал команды: что найдено, что исправлено, ссылка на PR и экономия. Запустить прогон можно командой прямо из чата.
Прогон orders-service завершён
Исправлено: конкатенация в цикле, OrderService.java:24 · 77 → 31 мс (−60%)
Отклонено порогом: 1 фикс (git revert)
PR #482 ждёт ревью · PERF-1247
Экономия: ≈ 29 808 ₽/мес
Источники данных
Четыре независимых источника
Статический анализ
Эвристики по таксономии дефектов: от лишних аллокаций до запросов в цикле.
SonarQube
Перф-правила из банковского Sonar по API. Недоступен — прогон продолжается на остальных источниках и помечает деградацию в отчёте.
JFR-профиль
Где в коде горячо: методы, стеки, аллокации, GC — с точностью до строки. Именно это превращает подозрение в адрес фикса.
DropApp
Сколько ресурсов ест сервис в проде: утилизация CPU и памяти, тренды. Подсказывает, где искать, — и подтверждает эффект фикса после выката.
Таксономия
Девять типов дефектов
Избыточные вычисления
одна и та же работа дважды, лишние проходы по данным.
Неэффективные алгоритмы
квадратичная сложность там, где есть линейная.
Неправильное использование функций
полная сущность там, где нужен только факт её существования.
Ошибки в раскладке данных
структура занимает больше памяти, чем нужно.
Избыточные проверки
одно и то же проверяется в трёх слоях, мёртвые ветки.
Ошибки в запросах к базе
лишние round-trip, подзапросы вместо соединений.
Утечка памяти
то, что растёт неограниченно.
Перерасход памяти
не течёт, но занимает кратно больше необходимого.
Избыточная нагрузка на CPU
лишняя работа в горячем пути.
Корреляция
Чинится только подтверждённое
Находки сопоставляются по координатам кода. Чинится только то, что горячо в профиле и подтверждено статикой — или горячо само по себе, тогда фикс формирует LLM.
Холодные срабатывания правил в код не попадают. Они уходят в отчёт — для решения человеком.
То, что не доказано измерением, инструмент не трогает.
Демонстрация
Один запуск — от анализа до подтверждённого фикса
Примеры
До и после
Девять классов проблем — от строк до утечек памяти.
PaymentParser.java:19 · медиана 96 мс → 22 мс (−77%)
Отчёт
findings.json
Проверено — и не дефект
Отдельный раздел checked_but_not_an_issue. Что инструмент проверил, почему это не проблема — чтобы команда не проверяла второй раз.
Экономика
Миллисекунды в рубли
29 808 ₽/мес
≈ 9,2 vCPU · 994 ₽ в день
Δмс × RPS × тариф vCPU-часа
Зелёный коридор
Если после фиксов сервису больше не нужны текущие лимиты по ресурсам, их срезают до фактического потребления с запасом. Освобождённые vCPU из калькулятора — целевой уровень, а замеры DropApp и findings.json — готовое обоснование заявки.
Безопасность правок
Каждая правка проверяется
Один фикс — один коммит. После каждого — тесты и повторный бенчмарк: не меньше 5 прогонов, порог ≥5% медианы.
Не подтвердилось — автоматический git revert. Код меняет только отдельный модуль.
Полный журнал действий. Что читал, что предлагал, что менял.
Внедрение
Сделан для закрытого контура
Полностью офлайн
Ни одного внешнего вызова. Данные и код не покидают контур банка.
Ничего не закупать
Использует то, что уже есть: GigaCode, SonarQube, DropApp, JDK, Jira, Bitbucket.
Деградирует без падений
Недоступен Sonar или JDK — прогон продолжается на оставшихся источниках и помечает режим в отчёте.
Установка
Три шага
- 1Скопируйте директорию
.gigacodeв корень проекта. - 2Задайте параметры в
MANIFEST.md. - 3Запустите.
Нужен только Node.js. Всё остальное — инструменты, которые уже есть в контуре.
Промпт для GigaCode
Используй performance-optimizer. Проанализируй репозиторий, собери свидетельства всеми продюсерами, скоррелируй и сформируй findings.json. Код не изменяй.
FAQ
Вопросы
Что нужно для установки?
Node.js и GigaCode. Артефакт ставится копированием одной директории .gigacode в корень проекта.
Данные покидают контур?
Нет. Ни одного внешнего вызова: анализ, фиксы и отчёты — целиком внутри инфраструктуры банка.
Что, если фикс сломает тесты?
Автоматический git revert. Правка попадает в отчёт со статусом reverted и причиной.
Что, если SonarQube недоступен?
Прогон продолжится на эвристиках, JFR-профиле и данных DropApp, а деградация будет явно помечена в отчёте.
Как проверить ваши цифры?
В каждой находке — канал измерения, значения до и после и команда воспроизведения. Полный журнал действий — в runlog.
Чем это отличается от простого запуска SonarQube?
Sonar выдаёт все срабатывания правил без приоритета. GigaPerf оставляет только то, что горячо в профиле, чинит подтверждённое и измеряет эффект каждого фикса. Холодные срабатывания уходят в отчёт без правок.
Что будет, если находок нет?
Пустой findings.json — тоже результат. Раздел checked_but_not_an_issue покажет, что именно проверено и почему это не дефекты. Инструмент не выдумывает находки ради отчёта.
Безопасно ли запускать на рабочем репозитории?
Анализ полностью read-only. Правки вносит отдельный модуль и только по явному запросу: один фикс — один коммит, провал проверок — автоматический git revert.
Сколько занимает прогон?
Минуты. Эвристики отрабатывают за секунды, Sonar отвечает по API, JFR пишет столько, сколько идёт нагрузка — в демо это 60 секунд.
Почему только Java?
Продюсер динамики построен на JFR, поэтому старт — Java. Контракт находок и оркестрация языконезависимы: продюсер для другого стека подключается тем же форматом.