Приветствую Вас ГостьЧетверг, 16.01.2025, 03:10

Каталог статей


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

Оценка производительности делит операции на ключевые и технологические.
Данные по ключевым операциям хранятся в регистре ЗамерыВремени. Просмотреть данные этого регистра можно с помощью  отчета "Оценка производительности" в разделе "Администрирование" (по умолчанию не выведен).
Технические операции - это операции, которые явно не относятся к бизнес-логике. Данные по ним хранятся в регистре ЗамерыВремениТехнологические. В системе нет стандартных отчетов для этого регистра.

Виды ключевых и технических операций хранятся в справочнике "Ключевые операции". Этот справочник автоматически пополняется при записи данных в регистры. Поиск записей в справочнике выполняется по полю "Имя".
Следует учитывать, что при создания новой записи в справочнике, автоматически формируется реквизит Наименование по правилу: все заглавные буквы, кроме первой преобразуются в прописные и с добавлением впереди пробела.
Пример формирования наименования:
    Имя: ТСТ_Авансовый отчет ГК
    Наименование: Т с т_ авансовый отчет г к 

Запись по ключевым операциям.

На сервере.

при использовании серверного модуля ОценкаПроизводительности запись в регистр происходит в момент вызова метода ОценкаПроизводительности.ЗакончитьЗамерВремени()
Пример:
    ВремяНачала = ОценкаПроизводительности.НачатьЗамерВремени();
    ОценкаПроизводительности.ЗакончитьЗамерВремени("ИмяОперации", ВремяНачала);

На клиенте.

Запись в регистры происходит в фоновом режиме через интервалы времени, заданные в настройке "Период записи" в настройках оценки производительности (в стандартных конфигурациях Администрирование / Обслуживание / Оценка производительности).
Запись на клиенте осуществляется с помощью функции ОценкаПроизводительностиКлиент.ЗамерВремени(ИмяОперации, ФиксироватьСОшибкой, АвтоЗавершение)

Если АвтоЗавершение = Истина (по умолчанию), то замер заканчивается, как только управление снова передается пользователю. В результате, если АвтоЗавершение = Истина и вызывается окно другой формы, то замер прекращается.
Если АвтоЗавершение = Ложь, то замер прекращается при вызове метода ОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(). Если этот метод не вызывается, то запись в регистр не происходит.
ФиксироватьСОшибкой - признак автоматической фиксации ошибки (по умолчанию Ложь). Если ФиксироватьСОшибкой = Истина, то, при автоматическом завершении, замер будет записан с признаком "Выполнен с ошибкой". Данный параметр никак не связан с ошибками, которые могут возникнуть внутри процедуры или при обработке исключения.

Пример использования:

&НаКлиенте
Процедура ТестоваяОперация(Команда)

    АвтоЗавершение = Ложь;
    ФиксироватьСОшибкой = Ложь;
    УИД = ОценкаПроизводительностиКлиент.ЗамерВремени("ТестКлиентНачало", ФиксироватьСОшибкой, АвтоЗавершение);
    ОценкаПроизводительностиКлиент.УстановитьКомментарийЗамера(УИД, "ФиксироватьСОшибкой = "+ ФиксироватьСОшибкой + ", АвтоЗавершение = " + АвтоЗавершение); //вывод пояснения режима запуска в процессе тестирования
    ОписаниеЗавершения = Новый ОписаниеОповещения("ОкончаниеОбработки", ЭтаФорма, Новый Структура("УИД", УИД));
    ОткрытьФорму("Справочник.МойСправочник.ФормаВыбора",,,,,,ОписаниеЗавершения);
    
КонецПроцедуры

 

&НаКлиенте
Процедура ОкончаниеОбработки(РезультатВыбора, ДопПараметры) Экспорт
    
    УИД1 = ОценкаПроизводительностиКлиент.ЗамерВремени("ТестКлиентОкончание");
    ОценкаПроизводительностиКлиент.УстановитьКомментарийЗамера(УИД1, "ФиксироватьСОшибкой = "+ ФиксироватьСОшибкой + ", АвтоЗавершение = " + Истина);
    
    Если РезультатВыбора <> Неопределено Тогда
        ДобавитьКомментарийНаСервере(РезультатВыбора);            
    Иначе 
        Попытка
            ВызватьИсключение("Ошибка. Значение не выбрано");        
        Исключение
        КонецПопытки;
    КонецЕсли;        
    
    ОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(ДопПараметры.УИД);   

    //Вызванное исключение никак не отражается в замере.
    //Если убрать обработку попытки, то до этой строки не дойдет, и, при Автозавершении = Ложь, замер с УИД не будет добавлен в регистр.
    
КонецПроцедуры

 

Если замер производительности добавляется для проведения документа, то функцию ЗамерВремени рекомендуется добавить в начало события  ПередЗаписью() и завершить замер в событии формы ПослеЗаписи(). В этом случае будут учтены все промежуточные методы, которые выполняются как на клиенте так и на сервере. 


    

Так же можно почитать:

https://Курсы-по-1с.рф/news/2021-12-03-performance-evaluation/

https://open-budget.ru/public/1006853/

Категория: Администрирование | Добавил: leshic (06.05.2024)
Просмотров: 49 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Вход на сайт
Поиск
Категории раздела
СКД [50]
Регистры [7]
Формы [47]
Администрирование [41]
Запросы [10]
Объекты конфигурации и типы данных [20]
Взаимодействие с другими базами, приложениями и источниками данных [16]
Программирование [41]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0