Имя: Пароль:
1C
1С v8
Вызов сервера
0 Feunoir
 
10.04.13
15:18
http://i.imgur.com/Dw7iKpD.png

Вопрос: А не слишком-ли жирно каждый вызов сервера по 0.03 секунды?

Это именно вызов сервера, без учета времени выполнения самой функции. Сеть - обычная 100 Мбит. Трансфер с сервера ~10 МБайт/сек, пинг нормальный - 1 мс на пакете 32 байта, 12 мс на пакете 64000 байт, потерь пакетов нет. Или смириться и ждать гигабита?
1 Maxus43
 
10.04.13
15:26
Если жирно - переписывай логику, а не по 500 1933 раза вызывай сервер
2 Feunoir
 
10.04.13
15:29
(1) Кривизну типового кода сейчас не вижу смысла обсуждать. Это технический вопрос.
3 Maxus43
 
10.04.13
15:32
(2) на этот вопрос ответят только в ЗАО 1с, нет? не вижу смысла обсуждать тут.
Сеть не в 1ГБ это нонсенс уже в наше время кстати... проверь у когонить на гигабитке
4 Maxus43
 
10.04.13
15:34
да и при таких значениях замера ругаться на 0,03 секунды - тоже нонсенс. Там минуты идут
5 Maxus43
 
10.04.13
15:35
Не вижу передаётся ли что на сервер, скрин неудачный
6 Feunoir
 
10.04.13
15:49
57 секунд на 1933 вызова, на каждый вызов 0.03 секунды.  Окно замера полностью - далее только скроллбар. В процедуру передаются две строки и ссылка на документ.

Проверил на 2 Гбит - 14 секунд на 1450 вызовов: 0.008 секунды на вызов, уже более-менее.
7 Lexusss
 
10.04.13
15:51
Ндя... Я гоняю программеров за переделку с трех на два вызова сервера, а тут 1500 вызовов...
8 Fragster
 
гуру
10.04.13
15:53
а как же 1933 раза обновить индикатор на форме?
9 Зойч
 
10.04.13
15:54
(8) для индикатора норм. все равно остальное дольше делается
10 Fragster
 
гуру
10.04.13
15:55
(9) я к тому, что дергая сервер реже придется реже обновлять индикатор... кстати, автор не поставил "для вызоав процедур включать общее время выполнения", которое, ИМХО, лучше подходит для анализа
11 Зойч
 
10.04.13
15:56
а серверный вызов контекстный или нет?
12 Feunoir
 
10.04.13
15:57
(7) Так это и напрягает. 50% времени проведения документа проводим в вызовах.

(10) Если ставить, то получается порядка 100 секунд и 40% от общего времени.

(11) Нет. Это вообще толстый клиент и вызов из одного общего модуля (клиентского) другого (серверного).
13 Feunoir
 
10.04.13
15:59
(12) обычное приложение
14 Fragster
 
гуру
10.04.13
16:00
(13) я просто не понимаю, из чего сделан вывод про время передачи управления
15 Maxus43
 
10.04.13
16:00
(6) ну вот и так хлтя бы, 100мбит - нонсенс :)
похорошему переделывать конечно код, тем более что это проведение документа. Не видел я в типовых такого косяка, там как раз на сервер всё перебрасывается и там крутится как правило
16 Maxus43
 
10.04.13
16:01
(14) время на передачу "две строки и ссылка на документ" имхо идёт, а не на мифический вызов сервера
17 Fragster
 
гуру
10.04.13
16:03
(16) "две строки и ссылка" должны влезать в один пакет, разницы между 100 мбит и 1000 мбит почти нет
18 Maxus43
 
10.04.13
16:03
в качестве теста - вызывай процедуру без прараметров пустую, сколько займёт 1500 вызовов?
19 Maxus43
 
10.04.13
16:03
(17) ну у автора разница большая на 100 и 1000 мбит, время отклика?
20 Feunoir
 
10.04.13
16:05
(15) Комплексная 1.1.32.1

(18) Попробую, интересно, кстати

(19) В 4 раза
21 Нуф-Нуф
 
10.04.13
16:06
1933 бегать на сервер? имхо, батенька, вы не своим делом занимаетесь...
22 Fragster
 
гуру
10.04.13
16:08
(19) время отклика судя по "12 мс на пакете 64000" = 12 / (64000/1500) = 0,28мс или 0,00028с
23 Maxus43
 
10.04.13
16:28
(22) это время отклика сети самой, откуда такая разница (6) при работе с 1с?
24 Maxus43
 
10.04.13
16:30
ну и там не один пакет, а 1500 пакетов
25 Fragster
 
гуру
10.04.13
16:32
(23) вот и мне интересно
26 zladenuw
 
10.04.13
16:35
да кто то порно по сетке смотрит. вот и все
27 Maxus43
 
10.04.13
16:41
(25) сниффер не включал кстати чтоб поглядеть сколько и чего шлёт 1с при вызове сервера? мож там на несколько пакетов разбивает, с получением ответов на эти части...
28 Fragster
 
гуру
10.04.13
16:57
(27) не, у меня проблем нет, я в таких случаях тупо делаю меньше вызовов. руки пока не дошли до "глубокой экспертизы"
29 Feunoir
 
11.04.13
08:31
Создал пустую процедуру, погонял тест 5000 вызовов.

Для процедуры вида:
Процедура ТестВызоваСервера() Экспорт

тратится порядка 60 секунд (0.012/вызов)

Но если добавить параметры:
Процедура ТестВызоваСервера(П1, П2, П3, П4) Экспорт

то вызов
ОбщегоНазначенияСервер.ТестВызоваСервера("Строка", Ссылка, 12345, "Ещё одна");



займет 130 секунд (0.026/вызов).
30 H A D G E H O G s
 
11.04.13
08:41
Выключите сжатие
31 Feunoir
 
11.04.13
09:05
(30) 115 секунд при отключенном сжатии. При этом трафик по сети 1.3 мегабита вверх/750 килобит вниз. При включенном - трафик такой же. Либо не действует на толстого клиента (как и написано в справке), либо выигрыш от сжатия не проявляется на таких объемах.
32 Lexusss
 
11.04.13
09:16
Перепиши чутка код. Передавай исполнение на сервер, проводи уже оттуда пачку документов (скажем 500 документов за первую половину дня за твои 5-10 секунд), возвращайся на клиента для обновления индикатора, и так далее.
33 Feunoir
 
11.04.13
09:24
(32) Руки дойдут и останется желание - перепишу. Рабочие сервера (1С и терминал) между собой 2-мя гигабитами связаны, в ближайшее время планируется переход на 10 Гбит. А этим я сейчас занялся в качестве общего развития.
34 Maxus43
 
11.04.13
09:29
прикольно, но не более того. быдлокод как известно губит всё, даже в типовых оно живёт.
(33) ты ж говорил у тебя там 100Мбит сеть, а с Гигабиткой уже терпимо всё... чото путаемся в показаниях
35 Feunoir
 
11.04.13
09:37
(34) 100 мегабитом ноутбук подключен. Разработка с ноута. Реальная работа с отдельного терминального сервера.