Проверка быстродействия BPMonline

Вопрос быстродействия зависит от нескольких факторов – быстродействие ресурса, локальной сети, интернет-соединения и т.д. Заявленное время открытия карточки для версии 5.3 – 2-3 секунды. В 5.2 это немного медленнее, в 5.4 – немного быстрее.

Для того, чтобы проанализировать, на каком этапе теряется производительность, следует провести проверку быстродействия BPMonline.

Вам понадобится:
Google Chrome с установленным компонентом Инструмент разработчика (как правило, установлен по умолчанию).

Как получить детализированную информацию о скорости загрузки отдельной страницы:

1. Откройте необходимую страницу (например, страницу карточки контакт) и дождитесь ее полной загрузки. После этого активируйте инструменты разработчика:

devtools1

2. Откройте в инструментах разработчика консоль:

devtools2
3. Вставьте в консоль скрипт (ниже) и нажмите Enter.

 

(function CheckPerformance() {
        if (typeof PageContainer_HtmlMainPage === 'object') {
               var mainPageWindow = PageContainer_HtmlMainPage.getWin();
        }
        var targetWindow = mainPageWindow || window;
        var manager = targetWindow.Terrasoft.PerformanceCounterManager;
        manager.getProfileInfo();
        var performance = targetWindow.performance || targetWindow.mozPerformance||
               targetWindow.msPerformance || targetWindow.webkitPerformance;
        var timing = performance.timing;
        var navigationStart = timing['navigationStart'];
        var responseStart = timing['responseStart'];
        var responseEnd = timing['responseEnd'];
        var loadEventEnd = timing['loadEventEnd'];
        var onReadyEnd = manager.getCounter('onReady').finishTime;
        var networkTime = timing['responseEnd'] - timing['responseStart'];
        var serverTime = responseStart - navigationStart;
        var parseJsTime = loadEventEnd - responseEnd;
        var execJsTime = onReadyEnd - loadEventEnd;
        var fullTime = serverTime + networkTime + parseJsTime + execJsTime;
        var output = 'Передача запроса  + Обработка на сервере: ' + serverTime + '\nПрием ответа: ' + networkTime + '\nПарсинг JavaScript: ' + parseJsTime +
               '\nВыполнение JavaScript:' + execJsTime + '\nОбщее время: ' + fullTime;
        return output;
})();

 

4. После того, как скрипт выполнится, в консоли внизу появится результат выполнения скрипта:

devtools3

5. Кроме того, следует произвести тестирование скорости обращения к серверу по следующей ссылке:
http://speed.bpmonline.com/

По результатам проверки можно определить, на каком этапе теряется производительность, и устранить узкие места.

Также хочу обратить Ваше внимание, что если на основной конфигурации ведется разработка (в частности, публикация схем) в момент, когда пользователи работают, это может сильно сказываться на производительности. Это связано с архитектурой – для мгновенного применения изменений необходим перезапуск сайта, который и происходит в автоматическом режиме. Это занимает некоторое время.

Это справедливо для версий 5.3 и новее. Для версии 5.2 IIS автоматически не перезапускается, и при интенсивной разработке по завершении доработок в конфигурации имеет смысл перезапустить его вручную.

Нравится

Поделиться

7 комментариев

Интересный показометр. Как бы для "тройки" такое сделать...

А что могут означать отрицательные значения в результате:

"Обработка на сервере: 644
Сеть: 14
Парсинг JavaScript: 243
Выполнение JavaScript:-5437
Общее время: -4536"

Павел, уточните, пожалуйста, какая у Вас версия и какой браузер используется?

Очень похоже, что компонент таймера загрузки (targetWindow.Terrasoft.PerformanceCounterManager), к которому мы обращаемся в скрипте, не существует либо недоступен.

"paveles" написал:

А что могут означать отрицательные значения в результате:

"Обработка на сервере: 644
Сеть: 14
Парсинг JavaScript: 243
Выполнение JavaScript:-5437
Общее время: -4536"


Такое иногда бывает.
Если в результатах выполнения скрипта существуют отрицательные значение, то эти данные не корректны. В таком случае необходимо обновить страницу (F5) и выполнить скрипт повторно.

Также, есть замечательный инструмент, который дает более подробную картину происходящего - это Fiddler:
1. Установить Fiddler http://www.getfiddler.com/dl/Fiddler2Setup.exe
2. Запустить.
3. Включить опцию дешифровки https запроса.
Меню Tools->Fiddler Options.

В появившемся окне выбрать вкладку HTTPS и установить флажок “Decrypt HTTPS traffic”, после чего нажать кнопку “OK”. На все вопросы отвечать “Yes”
4. Перед тем как профайлить нужные действия, необходимо очистить список сессий в Fiddler.

5. Выполнить действия, которые необходимо запрофайлить. Сценарий ниже.

6. Сохранить сессии в файл. Меню File->Save->All Sessions.

выдает ошибку 

TypeError: Cannot read property 'getProfileInfo' of undefined

 

Это статья относится к 5.Х, а в нынешней 7.Х движок пользовательского интерфейса полностью другой. Но совет Арсения по поводу Fiddler стал ещё актуальнее, поскольку много операций теперь вынесено на клиентскую сторону и обмен браузера данными с сервером стал доступнее для анализа.

Показать все комментарии