|
Передача клиент - сервер | ☑ | ||
---|---|---|---|---|
0
коудманки
03.04.17
✎
10:54
|
Подскажите, от чего зависит скорость передачи между клиентом и сервером
Например массив из 1кк чисел передается туда-сюда примерно за 60 секунд, что мне кажется слишком долгим (при этом фактически "Клиент" находится на том же самом сервере через рдп): &НаКлиенте Процедура Тест(Команда) к = 1000000; м = Новый Массив; р = Новый ГенераторСлучайныхЧисел; Для _ = 1 По к Цикл м.Добавить(р.СлучайноеЧисло(0, 65535)); КонецЦикла; т = ТекущаяУниверсальнаяДатаВМиллисекундах(); ТестНаСервере(м); Сообщить(ТекущаяУниверсальнаяДатаВМиллисекундах() - т); КонецПроцедуры &НаСервереБезКонтекста Процедура ТестНаСервере(м) //ничего не делает КонецПроцедуры |
|||
1
qeos
03.04.17
✎
11:05
|
60 секунд это при 1Гбит сети получается 125 байт на одно число..
|
|||
2
Fragster
гуру
03.04.17
✎
11:06
|
(1) там время сериализации/десериализации сопостовимо с временем передачи
|
|||
3
Fragster
гуру
03.04.17
✎
11:07
|
при этом еще и передается в две стороны (чтобы обратно не передавалось - надо у параметра функции указать ЗНАЧ)
|
|||
4
RomanYS
03.04.17
✎
11:07
|
(2) +1
У меня 44 сек. При этом в сетевой активности 2 пика общей длительностью не болье 5 сек. |
|||
5
lodger
03.04.17
✎
11:19
|
мне вот интересно, а если гнать не Массив, а типизированную ТаблицуЗначений или СписокЗначений?
сериализация типизированных объемов должна происходить несколько шустрее, не? |
|||
6
коудманки
03.04.17
✎
11:36
|
СписокЗначений в 2 раза дольше
|
|||
7
lodger
03.04.17
✎
11:39
|
(6) а тип задавали? число ограничивали по длине, точности?
|
|||
8
коудманки
03.04.17
✎
11:39
|
а вот передача через чтение - запись временного файла менее секунды
|
|||
9
Fragster
гуру
03.04.17
✎
11:43
|
(5) сериализуй через сериализатор и посмотри результирующий XML. чем меньше узлов - тем быстрее. всякие кей-валуе хранилища добавляют кучу узлов.
Типизированная ТЗ сопоставима с массивом, но все равно имеет в два раза больше узлов (строка + колонка), но меньше атрибутов (в массиве всегда будет тип значения для каждого значения). |
|||
10
Fragster
гуру
03.04.17
✎
11:47
|
вот для реквизитов формы есть прикольные оптимизации на уровне платформы:
http://catalog.mista.ru/public/504141/ работает и для "таблица значений", но там один неверный шаг и вся она будет передаваться целиком. часто можно вообще не иметь на клиенте больших данных, а хранить их во временном хранилище на сервере. Ну, или наоборот, убрать данные из контекста формы, поместив их в глобальную переменную модуля формы, и передавать на сервер только необходимые куски. |
|||
11
коудманки
03.04.17
✎
11:55
|
Главное я понял, у всех так
Способы как обойти я найду спс |
|||
12
коудманки
03.04.17
✎
13:52
|
сериализовал через сериализатор и посмотрел XML
Даже если явно указать тип для списка или таблицы, все равно в каждой строке так же указывается тип. Быстрее передача не становится <?xml version="1.0" encoding="UTF-8"?> <ValueTable xmlns="http://v8.1c.ru/8.1/data/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <column> <Name>Число </Name> <ValueType> <Type>xs:decimal </Type> <NumberQualifiers> <Digits>10 </Digits> <FractionDigits>0 </FractionDigits> <AllowedSign>Any </AllowedSign> </NumberQualifiers> </ValueType> </column> <row> <Value xsi:type="xs:decimal">19930 </Value> </row> <row> <Value xsi:type="xs:decimal">10300 </Value> </row> ... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |