Опыт использования подсистемы "Оценка производительности" в УТ11

Опубликовал Vlad_M в раздел Программирование - Практика программирования

Опыт внедрения и использования подсистемы "Оценка производительности" из БСП 2.0 в Управлении торговлей 11 (11.0.8). Отчет по статистике проведенных замеров с отбросом статистических выбросов.

Подсистема встраивалась в УТ 11.0.8; в данной версии в типовой конфе она отсутствовала.
Не буду описывать как технически осуществляется интеграция, описания можно найти в интернете, например http://programmist1s.ru/ustanovka-podsistemyi-bsp-otsenka-proizvoditelnosti/

Остановлюсь вот на чем: в найденных мною описаниях речь идет о ранних версиях БСП, а её использование было несколько изменено начиная с БСП 2.0.1.

Цитирую: "Изменен тип объекта КлючевыеОперации - теперь это справочник. Необходимо перенести все ключевые операции из перечисления в справочник и в режиме 1С:Предприятия задать приоритет и целевое время для каждой операции. Для замеров времени больше не используется параметр сеанса ТекущийЗамерВремени, вместо него на клиенте используется глобальная переменная модуля управляемого или обычного приложения ОценкаПроизводительностиЗамерВремени."

Соответственно, после объединения подсистем, в модуль управляемого или обычного приложения нужно добавить глобальную переменную ОценкаПроизводительностиЗамерВремени, прописать значения в справочник КлючевыеОперации (я использовал предопределенные значения) и добавить вызовы замеров времени в нужных местах.

Опять же в интернете приведен пример интеграции замера в интерактивное проведение документа (замена стандартной кнопки OK).
Вот мой код кнопки "Провести и закрыть" применительно к БСП 2.0.


&НаКлиенте

Процедура _OK(Команда)

    Если
ОценкаПроизводительностиПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда

       
#Если ТолстыйКлиентОбычноеПриложение Тогда

           
КлючеваяОперация = Справочники.КлючевыеОперации.ПроведениеЗаказаКлиента;

       
#Иначе

           
КлючеваяОперация = ПредопределенноеЗначение("Справочник.КлючевыеОперации.ПроведениеЗаказаКлиента");

       
#КонецЕсли

       
ОценкаПроизводительностиКлиентСервер.НачатьЗамерВремени(КлючеваяОперация);

    КонецЕсли;



    Попытка

       
#Если ТолстыйКлиентОбычноеПриложение Тогда

           
ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);

       
#Иначе

           
ПараметрыЗаписи = Новый Структура("РежимЗаписи");

           
ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение;

           
ЭтаФорма.Записать(ПараметрыЗаписи);

       
#КонецЕсли

   
Исключение

    КонецПопытки;

   
ЭтаФорма.Закрыть();



КонецПроцедуры

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


&НаКлиенте

Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)



   
//==========================

    //замер времени открытия списка заказов клиентов

   
Если ОценкаПроизводительностиПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда

       
#Если ТолстыйКлиентОбычноеПриложение Тогда

           
КлючеваяОперация = Справочники.КлючевыеОперации.ОткрытиеСпискаЗаказовКлиентов;

       
#Иначе

           
КлючеваяОперация = ПредопределенноеЗначение("Справочник.КлючевыеОперации.ОткрытиеСпискаЗаказовКлиентов");

       
#КонецЕсли

       
ОценкаПроизводительностиКлиентСервер.НачатьЗамерВремени(КлючеваяОперация);

    КонецЕсли;

   
//================



    //стандартный код

   
ОткрытьФорму("Документ.ЗаказКлиента.Форма.ФормаСпискаДокументов",

        ,
// ПараметрыФормы,

       
ПараметрыВыполненияКоманды.Источник,

       
ПараметрыВыполненияКоманды.Уникальность,

       
ПараметрыВыполненияКоманды.Окно

    );



КонецПроцедуры

Ну и поскольку пока цель - накопление статистики, а не анализ его по APDEX (в отсутствие целевых эталонных времен) -  реализован отчет на СКД, который показывает в виде диаграмм количество, максимальное и среднее время выполнения операций в разрезе подразделений (у нас территориально распределенная сеть).

Особенность отчета - для вариантов "среднее время операций", "максимальное время выполнения операций" отбрасываются 10% минимальных и максимльных значений замеров внутри дня и ключевой операции. Это нужно для исключения случайных выпадений. Например пользователь выполняет замеряемую операцию, внутри который имеется интерактивный диалог - а вместо ответа "Да/Нет" пользователь вышел покурить / отвечает на телефонный звонок и т.п. или случился "затык" канала связи и время вместо 8 секунд стало 70 :).

Файлы

Наименование Файл Версия Размер Кол. Скачив.
Отчет статистика замеров быстродействия
.erf 12,94Kb
04.07.13
17
.erf 12,94Kb 17 Скачать

См. также

Комментарии

1. AlX0id 04.07.2013 12:53
Эм... А где же сам "опыт" использования-то? Ну там оценки - типа подсистема "г" или не "г", подходит в таких-то случаях, в таких-то не подходит..
Ответили: (2)
# Ответить
2. Vlad_M 04.07.2013 13:00
(1) хм... действительно. Внедрили - собираем статистику. Инструмент нормальный с той точки зрения что пытается именно с точки зрения пользователя замерить. До выполнения отчетов пока не добрались, хотя мысли есть. Внятных скачков быстродействия не заметили, заметили что масштабируемости у нас пока хватает - т.е. при увеличинии работы пользователей и количества операций среднее время фактически не изменяется.
# Ответить
3. bendarik 28.11.2014 18:26
У меня внутренний конфликт.
С одной стороны я понимаю, что необходимо цепляться, как в вашем случае, за кнопку "ОК", а с другой стороны не могу найти аргументов против того чтобы цепляться за обработчики событий (начать с "ПередЗаписью" и закончить "ПослеЗаписи").
Возможно фитча в том, чтобы полностью возродить пользовательское "клацанье", но где же взять пруф тому что от клацанья до момента вызова первого обработчика че-то происходит? Логично предположить, что происходит в этот промежуток как раз вызов обработчика )), но стоит ли описывать новую команду ради замера вызова обработчика?
Помогите...
# Ответить
4. mxs89 03.02.2016 11:27
как происходит сохранение результатов замера? в РС ЗамерыВремени?
Ответили: (5)
# Ответить
5. Vlad_M 29.03.2016 10:23
(4) mxs89, Да в данном регистре
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл