Имя: Пароль:
1C
 
может ли серверный вызов занимать 3.5 сек?
,
0 vde69
 
07.11.18
19:54
есть у меня сложная форма с кучей информации, при разных событиях происходят серверные вызовы, во всех местах вроде все быстро работает, но вот кнопка которая вызывает серверную процедуру формирования некоторый ТбличныйДокумент, смотрю замером производительности

вызовов серверной процедуры с учетом времени серверных процедур - 4.3 сек, без учета - 3.7 сек

то есть как я понимаю
сам вызов (1 оператор) идет 3.7 сек
серверный код 0.6 сек

чего я не так делаю?

зы
НаСервереБезКонтекста использовать не вариант из-за текущей архитектуры формы, причины этой архитектуры здесь обсуждать не хочу...
1 rphosts
 
07.11.18
19:57
так там может этого контекста тонны....
снифером если посмотреть сколько данные передается при выполнении этого вызова?
2 Фрэнки
 
07.11.18
19:57
кроме соболезнований чего еще ждешь при такой простановке вопроса?
3 Лефмихалыч
 
07.11.18
19:58
формируй жэтот документ как-то по-другому
4 nicxxx
 
07.11.18
20:04
Может попробовать использовать &НаСервереБезКонтекста?
5 Сияющий в темноте
 
07.11.18
20:13
Если на форму положить кучу таблиц,а потом понести это все на сервер,то может оказаться и более минуты вызов.
Кладите в переменные все тяжелое,что на серваке не каждый раз нужно,ну или свой контекст перед вызовом собирать.
6 seevkik
 
07.11.18
20:35
Видел я одну конфу для мфо, не знаю кто ее писал, но она была монструозной, в плохом смысле. Вот там все было ещё хуже я бежал оттуда
7 vde69
 
07.11.18
22:26
(1) у меня на форме несколько команд которые используют вызов сервера с передачей контекста и все они работают быстро, только один это медлено....

(5) у меня самое тяжелое это табличный документ примерно на 300..500 строк и 20 столбцов
8 H A D G E H O G s
 
07.11.18
22:28
(7) Именно этот табдок таскается(создается) при этом медленном контекстном вызове?
9 Diman000
 
07.11.18
22:31
(7) У тебя точно на всех командах одинаковые серверные вызовы с передачей контекста формы?
Может в остальных командах вызовы процедур серверных общих модулей, а только в этом именно серверная процедура в модуле формы?
10 RomanYS
 
07.11.18
22:41
(0) Что-то я не врубился как замер сделан. Отладка на сервере включена?
"серверный код 0.6 сек" этот результат замера, или твоя интерпретация?
11 vde69
 
07.11.18
22:42
(8) да создается он

(9) завтра посмотрю, а то на память не помню
12 vde69
 
07.11.18
22:44
(10) это значение в результате замера,
кстати завтра попробую замерить не все скопом а только то, что на сервере
13 Garykom
 
гуру
07.11.18
22:44
(0) Слишком много данных тянешь из клиента на сервер.

Попробуй передавать поменьше (грубо только ссылку на текущий объект) а побольше получать сразу на сервере из базы.
14 Garykom
 
гуру
07.11.18
22:46
(13)+ Не забыть про условие что тек. объект должен быть записан в базу перед печатью.

Вот если это нечто вроде не записываемого объекта (не документ а обработка) то тут уже хз как.
15 Diman000
 
07.11.18
22:47
Ну и другие варианты возможны.
Может при том самом вызове с табдоком в процедуру передаются тяжелые параметры, какая-нибудь таблица формы, упакованная в массив структур. Если в ней 100500 строк, то они мгновенно на сервер не уползут.
Или может в тех других процедурах перед передачей на сервер происходит очистка тяжелых данных формы. Например, известная же тема, что для заполнения ТЧ на сервере надо сначала сделать ТЧ.Очистить() на клиенте и только потом использовать серверный вызов.
16 H A D G E H O G s
 
07.11.18
22:48
(12) Скинь обработку штоле. или cf
[email protected]
17 vde69
 
07.11.18
22:57
(14) это у меня обработка для пакетного создания документов
(16) обработка не имеет смысла, она из самописки завязана на собственные метаданные, а слать сф не могу
18 H A D G E H O G s
 
07.11.18
23:01
(17) Ну я хотя бы посмотрю ленивым взглядом.
19 RomanYS
 
07.11.18
23:18
(7) может тормозит как раз передача(возврат) ТД, а другие вызовы делаются при пустом ТД
20 Garykom
 
гуру
07.11.18
23:32
(19) Типа уже частично заполненный ТД передается с клиента на сервер для дозаполнения?
21 RomanYS
 
07.11.18
23:44
(20) другие вызовы (возможно) делаются при пустом ТД, а при этом вызове на сервер уходит пустой ТД, а обратно уже заполненный и именно здесь тормоза.
22 timurhv
 
07.11.18
23:48
(0) Есть такое, большие табличные документы могут по минуте гоняться. Гоняйте их через временное хранилище - поможет 100%.
23 timurhv
 
08.11.18
00:01
+ (22) В типовых также используется реквизит формы, в него записывают данные и на клиенте уже получают. Но до конца я не разобрался как это работает, т.к. хранилище спасло и вопрос отпал.
24 H A D G E H O G s
 
08.11.18
00:02
(23) Плохо, что не разобрался.
25 H A D G E H O G s
 
08.11.18
00:06
26 timurhv
 
08.11.18
00:13
(24) Ок, завтра гляну ЗиК, там это сплошь и рядом :)
Но у вас немного другая была ситуация - на форме элемента необходимо отобразить данные, а у меня в печатной форме такая засада была. Все нюансы уже не вспомню...
27 Franchiser
 
гуру
08.11.18
00:30
Тяжёлый контекст формы может тормозить серверные вызовы, не используй ТЧ
28 MSOliver
 
08.11.18
05:40
ПоместитьВоВременноеХранилище - присутствует?
29 vde69
 
08.11.18
09:19
посмотрел повнимательнее, походу у меня тормоза из-за переменной типа "соответствие", это кеш для формирования табдока в нем я храню уже сформированые куски табдока.

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

&НаСервере

мКешПоСтатьям = КешПоСтатьям.Получить();
//что-то делаю
КешПоСтатьям = Новый ХранилищеЗначений(мКешПоСтатьям);

может есть какой нормальный способ хранить переменную на сервере без передача в контексте?
30 ДенисЧ
 
08.11.18
09:20
В параметрах сеанса?
31 Фрэнки
 
08.11.18
09:24
(29) это форма какого ОБъекта? Навскидку - ее надо бы в реквизиты объекта прицепить, который связан по умолчанию с открытой формой и тогда ее реквизит окажется в контексте сервера.
32 ptiz
 
08.11.18
09:25
(29) "хранить переменную на сервере" - временное хранилище же.
33 vde69
 
08.11.18
09:35
(31) перенос из реквизитов формы в реквизиты объекта ровным образом ничего не меняет, так-же медлено...
34 FIXXXL
 
08.11.18
09:42
(29) реквизит АдресВХранилище, и сохраняй свой кэш во ВременномХранилище
35 vde69
 
08.11.18
10:05
короче пока сделал через ВременноеХранилище - все стало значительно лучше...
36 Deon
 
08.11.18
10:12
(35) Это не объясняет, почему остальные процедуры не тормозили. Они же тоже этот кэш туда-сюда гоняют.
37 vde69
 
08.11.18
10:22
(36) как я понимаю они не гоняют, почему - не знаю...

сейчас то, что раньше занимало 4 сек, сейчас занимает 0.7 сек
38 dmpl
 
08.11.18
10:31
(37) Возможно, гоняется только то, к чему идет обращение. Обращения нет - нет и тормозов.
39 Вафель
 
08.11.18
10:33
Возможно диффы гоняются
40 Deon
 
08.11.18
10:36
(39) Т.е. 1Ска отслеживает, что если кэш поменялся на клиенте, он будет отправлен на сервер, и если поменяется и там, то будет отправлен обратно на клиент?
Умная какая
41 Фрэнки
 
08.11.18
10:38
(37) без текстов модуля тут вообще не о чем рассуждать
42 rphosts
 
08.11.18
17:41
(40) скорее хэшь сумма кэша изменилась - значит повторно кэшировать пора