Правило
Заголовок раздела «Правило»Любое изменение в горячем пути — проведение документов, закрытие месяца, регулярный обмен — сопровождается минимальным перф-прогоном (замер до/после) или явной аргументацией, почему деградации нет. Это acceptance-критерий, фиксируемый в описании изменения и в чеклисте ревью.
- В MR/описании изменения для горячих мест — пункт «влияние на производительность» (число серверных вызовов / план тяжёлого запроса / время операции).
- Транзакции не держать долго: длинная транзакция → блокировки и трудноуловимые ошибки.
- Долгие операции — асинхронно.
Горячее место — это код, чья цена умножается на объём или частоту:
- проведение и перепроведение массовых документов;
- закрытие месяца и групповые регламентные пересчёты;
- регулярные обмены и загрузки (ежедневные/ежечасные);
- серверные методы, вызываемые из форм при каждом действии пользователя;
- обработчики событий объектов (
ПередЗаписью,ОбработкаПроведения) массовых документов — они срабатывают на каждой записи.
Один неудачный отбор в часто вызываемом методе (ПолучитьОстаткиАвансов)
превращает 1,5 секунды в 45 — и всплывает только на проде через жалобы. Стоимость
поздней поимки несоизмеримо выше минутного замера на ревью: деградация в горячем
пути — это не «чуть медленнее», а очередь проведения, блокировки и закрытие
месяца, не влезающее в ночь.
Минимальный замер
Заголовок раздела «Минимальный замер»Не нужен нагрузочный стенд — нужны три числа на данных, сопоставимых с боевыми (копия прода, а не два тестовых документа):
| Что фиксируем | Чем |
|---|---|
| Время операции до/после | замер производительности конфигуратора или простой замер времени на пачке (100–1000 документов) |
| Число обращений к СУБД | замер: одинаковых запросов не стало больше (запрос в цикле виден сразу) |
| План изменённого тяжёлого запроса | план СУБД: нет полного перебора там, где был индекс |
Правильно
Заголовок раздела «Правильно»Когда не применять
Заголовок раздела «Когда не применять»Изменения вне горячих путей (разовые обработки, редкие регламентные операции без нагрузки) не требуют формального перф-прогона — достаточно здравой оценки.