Перейти к содержимому

Изменения в горячих местах сопровождать перф-прогоном

Директивный

v8std#std487v8std#std783

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

Любое изменение в горячем пути — проведение документов, закрытие месяца, регулярный обмен — сопровождается минимальным перф-прогоном (замер до/после) или явной аргументацией, почему деградации нет. Это acceptance-критерий, фиксируемый в описании изменения и в чеклисте ревью.

  • В MR/описании изменения для горячих мест — пункт «влияние на производительность» (число серверных вызовов / план тяжёлого запроса / время операции).
  • Транзакции не держать долго: длинная транзакция → блокировки и трудноуловимые ошибки.
  • Долгие операции — асинхронно.

Горячее место — это код, чья цена умножается на объём или частоту:

  • проведение и перепроведение массовых документов;
  • закрытие месяца и групповые регламентные пересчёты;
  • регулярные обмены и загрузки (ежедневные/ежечасные);
  • серверные методы, вызываемые из форм при каждом действии пользователя;
  • обработчики событий объектов (ПередЗаписью, ОбработкаПроведения) массовых документов — они срабатывают на каждой записи.

Один неудачный отбор в часто вызываемом методе (ПолучитьОстаткиАвансов) превращает 1,5 секунды в 45 — и всплывает только на проде через жалобы. Стоимость поздней поимки несоизмеримо выше минутного замера на ревью: деградация в горячем пути — это не «чуть медленнее», а очередь проведения, блокировки и закрытие месяца, не влезающее в ночь.

Не нужен нагрузочный стенд — нужны три числа на данных, сопоставимых с боевыми (копия прода, а не два тестовых документа):

Что фиксируем Чем
Время операции до/после замер производительности конфигуратора или простой замер времени на пачке (100–1000 документов)
Число обращений к СУБД замер: одинаковых запросов не стало больше (запрос в цикле виден сразу)
План изменённого тяжёлого запроса план СУБД: нет полного перебора там, где был индекс

Изменения вне горячих путей (разовые обработки, редкие регламентные операции без нагрузки) не требуют формального перф-прогона — достаточно здравой оценки.