Всем привет.
Я задавал этот вопрос на мисте только что, но там народ не хочет обсуждать.. Может тут у кого мысли есть? Хочу подискутировать ибо сейчас конкретно разбираюсь с тонким клиентом.
Есть УФ. При создании её на сервере создаю ТЗ (100000 строк), кладу во временное хранилище (на сервере). Потом с клиента делаю безконтекстный вызов, достаю ТЗ из ВХ, меняю, кладу ТЗ обратно в ВХ. Замер производительности показывает то, чего я не понимаю. Почему на вызов он (замер) отнёс всё время? Почему на ПолучитьИзВременногоХранилища и ПоместитьВоВременноеХранилище замер отнес мало времени, а на ВызовСервераБезКонтекста замер фактически отнёс ВСЁ время? Как-то неинформативно. Куда время-то ушло?
Вот код модуля формы:
Код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Колонка1", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10, ДопустимаяДлина.Фиксированная)));
ТЗ.Колонки.Добавить("Колонка2", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10, ДопустимаяДлина.Фиксированная)));
ТЗ.Колонки.Добавить("Колонка3", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10, ДопустимаяДлина.Фиксированная)));
ТЗ.Колонки.Добавить("Колонка4", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10, ДопустимаяДлина.Фиксированная)));
ТЗ.Колонки.Добавить("Колонка5", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10, ДопустимаяДлина.Фиксированная)));
ТЗ.Колонки.Добавить("Колонка6", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10, ДопустимаяДлина.Фиксированная)));
ТЗ.Колонки.Добавить("Колонка7", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10, ДопустимаяДлина.Фиксированная)));
ТЗ.Колонки.Добавить("Колонка8", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10, ДопустимаяДлина.Фиксированная)));
ТЗ.Колонки.Добавить("Колонка9", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10, ДопустимаяДлина.Фиксированная)));
ТЗ.Колонки.Добавить("Колонка10", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10, ДопустимаяДлина.Фиксированная)));
Для Индекс = 1 По 100000 Цикл
СтрокаТЗ = ТЗ.Добавить();
СтрокаТЗ.Колонка1 = "1234567890";
СтрокаТЗ.Колонка2 = "1234567890";
СтрокаТЗ.Колонка3 = "1234567890";
СтрокаТЗ.Колонка4 = "1234567890";
СтрокаТЗ.Колонка5 = "1234567890";
СтрокаТЗ.Колонка6 = "1234567890";
СтрокаТЗ.Колонка7 = "1234567890";
СтрокаТЗ.Колонка8 = "1234567890";
СтрокаТЗ.Колонка9 = "1234567890";
СтрокаТЗ.Колонка10 = "1234567890";
КонецЦикла;
АдресВХ = ПоместитьВоВременноеХранилище(ТЗ, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура КомандаВызовСервераБезКонтекста(Команда)
ВызовСервераБезКонтекста(АдресВХ);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ВызовСервераБезКонтекста(АдресВХ)
ТЗ = ПолучитьИзВременногоХранилища(АдресВХ);
ТЗ[5000].Колонка5 = "9999999999";
ПоместитьВоВременноеХранилище(ТЗ, АдресВХ);
КонецПроцедуры
&НаКлиенте
Процедура КомандаВызовСервераБезКонтекста1(Команда)
ВызовСервераБезКонтекста1();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ВызовСервераБезКонтекста1()
ффф = 1;
КонецПроцедуры
Вот скрин замера