#metod4105

Оптимизация клиент-серверного взаимодействия прикладных решений

1.

Цель: обеспечить предсказуемую и быструю работу при обычных и низкоскоростных каналах связи.

2.

Оптимизируйте два показателя:

  • количество серверных вызовов;
  • объем передаваемых данных (трафик).

Даже при небольшом трафике большое число вызовов может заметно замедлять работу.

3.

Для анализа и контроля используйте три инструмента:

  • Показатели производительности в режиме 1С:Предприятие;
  • Замер производительности в конфигураторе;
  • режим Имитация задержек при вызовах сервера.

Показатели производительности удобны для регулярного контроля в ходе разработки. Замер производительности полезен для анализа конкретных строк модулей. Имитация задержек помогает оценить комфортность пользовательских сценариев.

4.

Учитывайте, что итоговые показатели формируются совместно платформой и конфигурацией.

Платформа минимизирует нагрузку за счет следующих принципов:

  • передает на клиент только нужные данные;
  • по возможности передает данные «по требованию»;
  • передает данные порциями;
  • использует многоуровневое кеширование.

Эти принципы иногда противоречат друг другу, поэтому в реальных сценариях платформа применяет компромиссы.

4.1.

Упрощенно можно выделить уровни кеширования:

  • между сеансами;
  • в пределах сеанса;
  • в пределах формы.

Из-за кеширования один и тот же сценарий может давать разные результаты при первом и повторном выполнении.

5.

Проводите проверки на реалистичных сценариях и объемах данных.

Например, табличную часть тестируйте на типичном и на редком «тяжелом» объеме строк.

5.1.

Используйте три уровня испытаний:

  1. первое действие после изменения конфигурации;
  2. первое действие в сеансе (когда в прошлых сеансах оно уже выполнялось);
  3. повторное действие в текущем сеансе.

Обычно наиболее важны уровни 2 и 3. При ограниченном времени анализа приоритет чаще у уровня 3.

5.2.

Для уровня 3 повторяйте действие с новыми прикладными данными, а не с полностью идентичными.

Так оценка ближе к реальной работе пользователей.

6.

Режим имитации задержек используйте отдельно от базовых проверок. Он нужен для оценки времени и удобства сценариев, а не для анализа числа вызовов.

Не путайте:

  • Низкая скорость соединения — меняет поведение платформы для медленных каналов;
  • Имитация задержек — воспроизводит внешние условия работы канала.
7.

Интерпретируйте результаты аккуратно:

  • часть вызовов инициирует код конфигурации;
  • часть вызовов выполняет сама платформа вне кода модулей.

Полезные приемы анализа:

  • сравнить сценарий с включенным фрагментом конфигурации и без него;
  • сравнить показатели со «стендовой» конфигурацией на настройках по умолчанию;
  • зафиксировать нормативы по критичным сценариям и отслеживать их в динамике.
8.

Ориентиры по числу вызовов (уровень 3; значения уровня 2 указаны в скобках, если отличаются):

Операция Обычная скорость Низкая скорость Примечание
Переход на подсистему в панели разделов 0 0
Открытие списка справочника 1 1
Открытие формы выбора справочника 1 0 (1) Повторное открытие формы выбора с теми же параметрами
Выбор из формы выбора справочника и закрытие формы выбора 0 0
Открытие формы элемента справочника 1 1
Закрытие формы элемента справочника 0 0
Запись и закрытие формы элемента справочника после редактирования 2 1 Тест со закрытым списком справочника
Запись, проведение и закрытие формы документа после редактирования 2 1 Тест со закрытым списком документов
Установка отбора в таблице, связанной с динамическим списком 1 1
Получение списка выбора при вводе по строке 1 0 (1) Повторный ввод с теми же условиями поиска
Формирование отчета 1 1
9.

При выработке решений по оптимизации задавайте два вопроса:

  • можно ли убрать этот вызов;
  • можно ли сократить объем передаваемых данных.

Типовые приемы:

  • объединять несколько вызовов в один;
  • исключать лишние вызовы;
  • использовать повторно используемые возвращаемые значения там, где это оправдано.

Если цели оптимизации конфликтуют, выбирайте компромисс на основе замеров в максимально близком к эксплуатации стенде.

См. также
Источник

https://its.1c.ru/db/metod81/content/4105/hdoc