gifts2017

Когда контекстный вызов быстрее неконтекстного?*

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

Во всех рекомендациях учат, что выполнение без контекста лучше, чем с контекстом. Однако есть несколько случаев, когда это не так.

Когда нам нужно обновить какой-нибудь реквизит, например, цену при выборе номенклатуры, тут, конечно, нужно использовать неконтекстный вызов. В этом случае передача данных с клиента на сервер будет намного меньше, затраты на сериализацию и десериализацию будут минимальны.

Однако все меняется, когда нам нужно передать с сервера большое количество данных, причем "нужные данные" составляют бОльшую часть контекста, например, это отчет из большого количества строк.

В этом случае создатели платформы сделали оптимизацию - результирующий табличный документ хранится во временном хранилище на сервере, а на клиент передается только видимая часть. При пролистывании - на сервер передается запрос следующей части и с сервера возвращается только она.

А вот если сделать вызов без контекста, то на клиент нужно передать весь документ, что влечет намного (в зависимости от объема табличного документа замедление может быть в десятки и даже сотни раз) большие одномоментные затраты времени. Естественно, никого обмануть не получится, и, например, при печати или поиске документ так или иначе будет получен на клиенте. Но субъективно "торможение" будет сильно меньше, так как разница в получении всего документа и только отображаемой части будет размазана во времени.

Во вложении небольшая демонстрация этого эффекта. Для большей наглядности в показателях производительности лучше включить объем отправленных и принятых данных. Настройка по клику на "мониторы" на панели показателей производительности.

Сама обработка:


* А вообще оптимизация клиент-серверного взаимодействия в управляемых формах - вещь зачастую нетривиальная, и в случае неудовлетворительной производительности требует экспериментов в конкретных случаях, вплоть до разбивки формы на несколько со связью через команды панели навигации, как раз для уменьшения контекста.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
БольшойТабличныйДокумент.epf
.epf 7,91Kb
21.03.16
3
.epf 7,91Kb 3 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. aspirator 23 (aspirator23) 26.03.16 15:47
Яши нет с его знаменитой фразой
2. Антонио (Fragster) 28.03.16 16:04
3. aspirator 23 (aspirator23) 29.03.16 09:31
(2) Я тебя уважаю за многопоточное тестирование. Яша придет - он скажет :)
4. Роман Иванов (stroyteam1c) 26.09.16 14:41
А можете поподробнее расписать что имелось ввиду под
вплоть до разбивки формы на несколько со связью через команды панели навигации, как раз для уменьшения контекста.
?
Может на каком-то простом примере.
5. Роман Иванов (stroyteam1c) 26.09.16 15:02
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа