Оценка производительности делит операции на ключевые и технологические.
Данные по ключевым операциям хранятся в регистре ЗамерыВремени. Просмотреть данные этого регистра можно с помощью отчета "Оценка производительности" в разделе "Администрирование" (по умолчанию не выведен).
Технические операции - это операции, которые явно не относятся к бизнес-логике. Данные по ним хранятся в регистре ЗамерыВремениТехнологические. В системе нет стандартных отчетов для этого регистра.
Виды ключевых и технических операций хранятся в справочнике "Ключевые операции". Этот справочник автоматически пополняется при записи данных в регистры. Поиск записей в справочнике выполняется по полю "Имя".
Следует учитывать, что при создания новой записи в справочнике, автоматически формируется реквизит Наименование по правилу: все заглавные буквы, кроме первой преобразуются в прописные и с добавлением впереди пробела.
Пример формирования наименования:
Имя: ТСТ_Авансовый отчет ГК
Наименование: Т с т_ авансовый отчет г к
Запись по ключевым операциям.
На сервере.
при использовании серверного модуля ОценкаПроизводительности запись в регистр происходит в момент вызова метода ОценкаПроизводительности.ЗакончитьЗамерВремени()
Пример:
ВремяНачала = ОценкаПроизводительности.НачатьЗамерВремени();
ОценкаПроизводительности.ЗакончитьЗамерВремени("ИмяОперации", ВремяНачала);
На клиенте.
Запись в регистры происходит в фоновом режиме через интервалы времени, заданные в настройке "Период записи" в настройках оценки производительности (в стандартных конфигурациях Администрирование / Обслуживание / Оценка производительности).
Запись на клиенте осуществляется с помощью функции ОценкаПроизводительностиКлиент.ЗамерВремени(ИмяОперации, ФиксироватьСОшибкой, АвтоЗавершение)
Если АвтоЗавершение = Истина (по умолчанию), то замер заканчивается, как только управление снова передается пользователю. В результате, если АвтоЗавершение = Истина и вызывается окно другой формы, то замер прекращается.
Если АвтоЗавершение = Ложь, то замер прекращается при вызове метода ОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(). Если этот метод не вызывается, то запись в регистр не происходит.
ФиксироватьСОшибкой - признак автоматической фиксации ошибки (по умолчанию Ложь). Если ФиксироватьСОшибкой = Истина, то, при автоматическом завершении, замер будет записан с признаком "Выполнен с ошибкой". Данный параметр никак не связан с ошибками, которые могут возникнуть внутри процедуры или при обработке исключения.
Пример использования:
&НаКлиенте
Процедура ТестоваяОперация(Команда)
АвтоЗавершение = Ложь;
ФиксироватьСОшибкой = Ложь;
УИД = ОценкаПроизводительностиКлиент.ЗамерВремени("ТестКлиентНачало", ФиксироватьСОшибкой, АвтоЗавершение);
ОценкаПроизводительностиКлиент.УстановитьКомментарийЗамера(УИД, "ФиксироватьСОшибкой = "+ ФиксироватьСОшибкой + ", АвтоЗавершение = " + АвтоЗавершение); //вывод пояснения режима запуска в процессе тестирования
ОписаниеЗавершения = Новый ОписаниеОповещения("ОкончаниеОбработки", ЭтаФорма, Новый Структура("УИД", УИД));
ОткрытьФорму("Справочник.МойСправочник.ФормаВыбора",,,,,,ОписаниеЗавершения);
КонецПроцедуры
&НаКлиенте
Процедура ОкончаниеОбработки(РезультатВыбора, ДопПараметры) Экспорт
УИД1 = ОценкаПроизводительностиКлиент.ЗамерВремени("ТестКлиентОкончание");
ОценкаПроизводительностиКлиент.УстановитьКомментарийЗамера(УИД1, "ФиксироватьСОшибкой = "+ ФиксироватьСОшибкой + ", АвтоЗавершение = " + Истина);
Если РезультатВыбора <> Неопределено Тогда
ДобавитьКомментарийНаСервере(РезультатВыбора);
Иначе
Попытка
ВызватьИсключение("Ошибка. Значение не выбрано");
Исключение
КонецПопытки;
КонецЕсли;
ОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(ДопПараметры.УИД);
//Вызванное исключение никак не отражается в замере.
//Если убрать обработку попытки, то до этой строки не дойдет, и, при Автозавершении = Ложь, замер с УИД не будет добавлен в регистр.
КонецПроцедуры
Если замер производительности добавляется для проведения документа, то функцию ЗамерВремени рекомендуется добавить в начало события ПередЗаписью() и завершить замер в событии формы ПослеЗаписи(). В этом случае будут учтены все промежуточные методы, которые выполняются как на клиенте так и на сервере.
Так же можно почитать:
https://Курсы-по-1с.рф/news/2021-12-03-performance-evaluation/
https://open-budget.ru/public/1006853/
|