|
|
|
Пустой серверный вызов в управляемом приложении 15мс против 2мс в обычном приложении , X Leshiy, Злопчинский, roman383, Доминошник, TormozIT, H A D G E H O G s, ИУБиПовиц, Garykom, WhiteDragon93, ЯнСмит, Kongo2019, Шурик71, obs191, Spyke, ТДК, d4rkmesa, Zamestas, Волшебник, PLUT, ГдеСобакаЗарыта, fyn, ProxyInspector, LLeonidov, Анютик, ДемьянТ, DiMel_77, whitedi, Bigbro, Amra, Philix, Кирпич, Михаил Козлов, maxab72, TTimur, crotnn, Lama12, oleg_km, vis, Dedal, Мультук, privetik, phabeZ, Новиков, ОператорПК, akronim, Fish, Sol78, arsik, boozin, okmail, ptiz, maxar, dmt, formista2000, Franchiser, rbcvg, Александр111, d18, Sneer, BOOL, leonidkorolev, hiddi, denk, PR, trad, Mihenius, alexxx961503, Elf_80_lvl, nick86, Krendel, Asmody, MM, JanK, abfm, kostik79, reloc, mortal, denk32, ALCAPONA, Chameleon1980, Fragster, U4Me2, JohnGilbert, Hans
| ☑ | ||
|---|---|---|---|---|
|
0
TormozIT
гуру
28.12.25
✎
17:03
|
Нарыл что ОП (обычное клиентское приложение) намного быстрее служебную часть серверного вызова делает чем УП (управляемое клиентское приложение) - 2мс против 15мс на локальном сервере.
Расскажи, если знаешь чем это обусловлено. Сообщи, если у тебя другие замеры на локальном сервере. https://partners.v8.1c.ru/forum/topic/2266376 https://www.hostedredmine.com/issues/1007791 |
|||
|
1
Garykom
гуру
28.12.25
✎
19:50
|
А если &НаСервереБезКонтекста?
|
|||
|
2
hiddi
29.12.25
✎
01:14
|
Возможно оберток сетевых протокольных всяких больше в управляемом
|
|||
|
3
Chameleon1980
29.12.25
✎
06:25
|
(2) наоборот же?
|
|||
|
4
Chameleon1980
29.12.25
✎
06:27
|
(0) и контекст одинаковый?
|
|||
|
5
TormozIT
гуру
29.12.25
✎
08:23
|
Из описания теста: "выполнится чистый вызов из клиентского общего модуля в серверный"
|
|||
|
6
Chameleon1980
29.12.25
✎
08:28
|
(5) в топике не вижу. Нужно по ссылке идти?
|
|||
|
7
TormozIT
гуру
29.12.25
✎
08:52
|
(6) Там готовый чистый тест для тех, кому действительно интересно.
|
|||
|
8
Lama12
29.12.25
✎
09:12
|
(7) Не заинтересовал.
|
|||
|
9
TormozIT
гуру
29.12.25
✎
09:46
|
(8) Спасибо, что сообщил. Это очень важно для меня.
|
|||
|
10
Fragster
гуру
29.12.25
✎
12:22
|
это пространство для будущей оптимизации
|
|||
|
11
Волшебник
29.12.25
✎
12:51
|
(10)
|
|||
|
12
H A D G E H O G s
29.12.25
✎
13:30
|
От 3 до 5 мс на упр и от 1 до 3 мс на обычном.
Винда - свежая, чистая, система развернута для максимально быстрого обновления многорелизов УТ на Новый год. Ну сериализуются в XML и сжимаются какие то данные в Тонком, четакова?
|
|||
|
13
H A D G E H O G s
29.12.25
✎
15:23
|
Лучше вызвать 1000 раз.
Для УправляемогоПриложения = 3856 мсек, 3,8 мсек на вызов. Для ОбычногоПриложения = 507 мсек, 0,5 мсек на вызов. Вот тогда разница ощутимее. |
|||
|
14
Волшебник
29.12.25
✎
13:49
|
(13) ты в толстом точно вызвал сервер? прямо вот передал вызов на сервер?
|
|||
|
15
H A D G E H O G s
29.12.25
✎
13:56
|
(13) Нет, это не длительный вызов сервера, это обработка/ отображение ответа
|
|||
|
16
H A D G E H O G s
29.12.25
✎
13:56
|
(14) of course
|
|||
|
17
Волшебник
29.12.25
✎
14:03
|
Всё понятно. Значит толстый клиент работает в 7-8 раз быстрее. Остаёмся пока на толстом клиенте и обычных формах.
|
|||
|
18
TormozIT
гуру
29.12.25
✎
14:49
|
(13) мои замеры для управляемого приложения не отличаются между тонким и толстым клиентами.
|
|||
|
19
maxab72
29.12.25
✎
14:51
|
(18) а почему они должны были отличаться? Наоборот, в таком режиме большее время серверного вызова из толстой формы запущенной в режиме тонкого клиента было бы не удивительно.
|
|||
|
20
H A D G E H O G s
29.12.25
✎
15:05
|
(18) Да, корректно говорить о разнице между
Обычным и Управляемом приложении, а не о Толстом и Тонком клиенте. |
|||
|
21
TormozIT
гуру
29.12.25
✎
16:47
|
(19) В исследуемой части теста нет форм. Там только общие модули. Про возможное отличие внес неоднозначность (13) и уже исправился.
|
|||
|
22
TormozIT
гуру
29.12.25
✎
15:17
|
(17) У меня это верно только для обычного приложения, а для толстого управляемого неверно, т.е. у меня разницы между толстым и тонким управляемым клиентом нет.
|
|||
|
23
maxab72
29.12.25
✎
15:43
|
(22) что понимается под "толстым управляемым"?
|
|||
|
24
H A D G E H O G s
29.12.25
✎
15:46
|
(23) ТолстыйКлиентУправляемоеПриложение
|
|||
|
25
TormozIT
гуру
29.12.25
✎
16:51
|
(13) Теперь вижу, что у тебя сопоставимое соотношение задержки (в 8 раз), т.е. твой опыт подтверждает мои замеры.
|
|||
|
26
arsik
гуру
29.12.25
✎
16:58
|
А теперь попробуйте данные пропихнуть туда и обратно. Например бинарные.
Уверен результат будет примерно одинаковый. |
|||
|
27
Garykom
гуру
29.12.25
✎
17:53
|
(12) Вопрос какие?
Если это вызов из клиентского общего модуля в серверный общий модуль? См (5) Кстати недаром в (1) спросил Получается контекст тянется слишком глубоко даже если его не спрашивали? 1. &НаКлиенте (форма) -> общий модуль (клиент) -> общий модуль (сервер) vs 2. &НаКлиенте (форма) -> &НаСервереБезКонтекста (форма) -> общий модуль (сервер) Или все же там явно контекст передается через параметры в случае 1? |
|||
|
28
H A D G E H O G s
29.12.25
✎
17:55
|
(26) Лучше набор сложновложенных структур.
|
|||
|
29
Garykom
гуру
29.12.25
✎
17:59
|
(28) Намекаешь что между клиентом и сервером в платформе по умолчанию xml-сериализация?
Так в том и вопрос, чего там сериализовывать если в параметрах (между вызовами клиентского и серверного ОМ) например один простой тип И контекста по идее не должно тянуться, если конечно это не отладка |
|||
|
30
TormozIT
гуру
29.12.25
✎
19:01
|
Записал полный техножурнал для этого локального теста на управляемом приложении, замер для которого показал 11мс (измерение кодом). Если кратко, то мне он не сильно помог в локализации утечки времени.
УП-Клиент: Отправил вызов в 45:46.074мс 45:46.074000-0,VRSREQUEST,4,level=INFO,process=1cv8,OSThread=50208,Usr=Администратор,Method=POST,URI='/e1cib/modules/call?id=urn%3Amodule%3Amd%3A1cd05d59-72c1-4469-ac6a-d78b257435fe%40property%3D%27d5963243-262e-4398-b4d7-fb16d06484f6%27%3Bversion%3D%277a6308fa9a1d354caf0a856da8e8219400000000%27',Headers='1C-BaseLocation: e1c://server/cortex/test User-Agent: 1CV8 1C-ApplicationName: 1CV8 Content-Length: 245 Content-Type: application/xml; charset=utf-8 Accept-Encoding: zstd,lz4;q=0.7,deflate;q=0.5,1CSDC;q=0.2 Accept-Language: ru-RU Accept: application/xml Content-Encoding: zstd',Body=245,Context=' ОбщаяФорма.ФормаУпр.Форма : 4 : Клиент.Тест(); ОбщийМодуль.Клиент.Модуль : 3 : Сервер.Тест();' 45:46.074002-1,SCALL,4,level=INFO,process=1cv8,OSThread=50208,Usr=Администратор,ClientID=2,Interface=bc15bd01-10bf-413c-a856-ddc907fcd123,IName=IVResourceRemoteConnection,Method=0,CallID=5521,MName=send,DstClientID=3603,Context=' ОбщаяФорма.ФормаУпр.Форма : 4 : Клиент.Тест(); ОбщийМодуль.Клиент.Модуль : 3 : Сервер.Тест();' 45:46.074003-0,VRSRESPONSE,4,level=INFO,process=1cv8,OSThread=50208,Usr=Администратор,Status=200,Phrase=OK,Headers='Server: 1C:Enterprise/8.3.27.1964 Content-Encoding: zstd Content-Language: ru-RU Content-Type: application/xml; charset=utf-8 Content-Length: 244',Body=244,Context=' ОбщаяФорма.ФормаУпр.Форма : 4 : Клиент.Тест(); ОбщийМодуль.Клиент.Модуль : 3 : Сервер.Тест();' 45:46.074005-1,SCALL,4,level=INFO,process=1cv8,OSThread=50208,Usr=Администратор,ClientID=2,Interface=90b77326-8e4a-4195-b980-d758277d1f03,IName=ISeanceContextStorage,Method=1,CallID=5522,MName=getSeanceParameterSer,DstClientID=3603,Context=' ОбщаяФорма.ФормаУпр.Форма : 4 : Клиент.Тест(); ОбщийМодуль.Клиент.Модуль : 3 : Сервер.Тест();' 45:46.074007-1,SCALL,4,level=INFO,process=1cv8,OSThread=50208,Usr=Администратор,ClientID=2,Interface=7f58f27d-5ad8-43a1-aa1e-c982f41bed5c,IName=IRemoteCreatorService,Method=2,CallID=5523,MName=callPutEventContext,DstClientID=3603,Context=' ОбщаяФорма.ФормаУпр.Форма : 4 : Клиент.Тест(); ОбщийМодуль.Клиент.Модуль : 3 : Сервер.Тест();' 45:46.074009-1,SCALL,4,level=INFO,process=1cv8,OSThread=50208,Usr=Администратор,ClientID=2,Interface=90b77326-8e4a-4195-b980-d758277d1f03,IName=ISeanceContextStorage,Method=12,CallID=5524,MName=getSeanceParameterIDs,DstClientID=3603,Context=' ОбщаяФорма.ФормаУпр.Форма : 4 : Клиент.Тест(); ОбщийМодуль.Клиент.Модуль : 3 : Сервер.Тест();' 45:46.074011-1,SCALL,4,level=INFO,process=1cv8,OSThread=50208,Usr=Администратор,ClientID=2,Interface=7f58f27d-5ad8-43a1-aa1e-c982f41bed5c,IName=IRemoteCreatorService,Method=2,CallID=5525,MName=callPutEventContext,DstClientID=3603,Context=' ОбщаяФорма.ФормаУпр.Форма : 4 : Клиент.Тест(); ОбщийМодуль.Клиент.Модуль : 3 : Сервер.Тест();' 45:47.027001-1,HASP,0,level=INFO,process=1cv8,OSThread=45312,Txt=' MEMOHASP_READBLOCK(,port=202,ser=ORGL8,pos=33,size=1,,)->,,stat=0,buf=DBC3' УП-Сервер: Принял вызов в 45:46.077мс (+3мс от момента отправки клиентом) 45:46.077009-0,VRSREQUEST,3,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,Method=POST,URI='/e1cib/modules/call?id=urn%3Amodule%3Amd%3A1cd05d59-72c1-4469-ac6a-d78b257435fe%40property%3D%27d5963243-262e-4398-b4d7-fb16d06484f6%27%3Bversion%3D%277a6308fa9a1d354caf0a856da8e8219400000000%27',Headers='1C-BaseLocation: e1c://server/cortex/test User-Agent: 1CV8 Content-Type: application/xml; charset=utf-8 1C-ApplicationName: 1CV8 Content-Length: 245 Accept-Encoding: zstd,lz4;q=0.7,deflate;q=0.5,1CSDC;q=0.2 Accept-Language: ru-RU Accept: application/xml Content-Encoding: zstd',Body=245 45:46.077010-0,VRSRESPONSE,3,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,Status=200,Phrase=OK,Headers='Content-Encoding: zstd Server: 1C:Enterprise/8.3.27.1964 Content-Language: ru-RU Content-Length: 244 Content-Type: application/xml; charset=utf-8',Body=244 45:46.077012-1,SCALL,3,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,ClientID=3617,Interface=90b77326-8e4a-4195-b980-d758277d1f03,IName=ISeanceContextStorage,Method=9,CallID=232575,MName=seanceParametersPresave,DstClientID=6918 45:46.077014-1,SCALL,3,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,ClientID=3617,Interface=90b77326-8e4a-4195-b980-d758277d1f03,IName=ISeanceContextStorage,Method=10,CallID=232576,MName=seanceParametersCommit,DstClientID=6918 45:46.077015-15,CALL,2,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,callWait=0,first=1,Context=ОбщийМодуль.Вызов : ОбщийМодуль.Сервер.Модуль.Тест,Interface=bc15bd01-10bf-413c-a856-ddc907fcd123,IName=IVResourceRemoteConnection,Method=0,CallID=5521,MName=send,Memory=21792,MemoryPeak=304720,InBytes=260,OutBytes=0,CpuTime=0 45:46.077019-1,SCALL,3,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,ClientID=3617,Interface=90b77326-8e4a-4195-b980-d758277d1f03,IName=ISeanceContextStorage,Method=13,CallID=232577,MName=setCallID,DstClientID=6918 45:46.077021-1,SCALL,3,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,ClientID=3617,Interface=90b77326-8e4a-4195-b980-d758277d1f03,IName=ISeanceContextStorage,Method=1,CallID=232578,MName=getSeanceParameterSer,DstClientID=6918 45:46.077023-1,SCALL,3,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,ClientID=3617,Interface=90b77326-8e4a-4195-b980-d758277d1f03,IName=ISeanceContextStorage,Method=12,CallID=232579,MName=getSeanceParameterIDs,DstClientID=6918 45:46.077024-7,CALL,2,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,callWait=0,first=0,Interface=90b77326-8e4a-4195-b980-d758277d1f03,IName=ISeanceContextStorage,Method=1,CallID=5522,MName=getSeanceParameterSer,Memory=-9632,MemoryPeak=1024,InBytes=0,OutBytes=0,CpuTime=0 45:46.077027-0,Context,2,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,Context=' ОбщаяФорма.ФормаУпр.Форма : 4 : Клиент.Тест(); ОбщийМодуль.Клиент.Модуль : 3 : Сервер.Тест();' 45:46.077030-1,CALL,2,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,callWait=0,first=0,Interface=90b77326-8e4a-4195-b980-d758277d1f03,IName=ISeanceContextStorage,Method=12,CallID=5524,MName=getSeanceParameterIDs,Memory=824,MemoryPeak=920,InBytes=0,OutBytes=0,CpuTime=0 45:46.077033-0,Context,2,level=INFO,process=rphost,p:processName=test,OSThread=16180,t:clientID=3603,t:applicationName=1CV8,t:computerName=CORTEX,t:connectID=71,SessionID=1,Usr=Администратор,Context=' ОбщаяФорма.ФормаУпр.Форма : 4 : Клиент.Тест(); ОбщийМодуль.Клиент.Модуль : 3 : Сервер.Тест();' 45:46.577001-1,SCALL,0,level=INFO,process=rphost,OSThread=35268,ClientID=3596,CallID=232580,MName=Release,DstClientID=6882 |
|||
|
31
TormozIT
гуру
29.12.25
✎
19:07
|
(30) Ну видимо время уходит на HTTP кухню, т.к. даже в режиме TCP протокола управляемый клиент все равно все вызовы готовит как полноценный HTTP запрос с кучей заголовков и подобного. И сервер соответственно тоже тратит время на эту кухню при приеме вызова. Ну и в обратную сторону (возврат из вызова) аналогично. Дополнительные действия на HTTP обертки умножаются на 4. Если добавилось всего 10мс, значит по 2мс на каждом заворачивании/разворачивании тратится.
Пока это - единственное что я смог придумать. |
|||
|
32
Злопчинский
29.12.25
✎
19:13
|
хм.. а это сильно важно?
ну вот чисто для прикладных задач... |
|||
|
33
Garykom
гуру
29.12.25
✎
19:16
|
(32) Очень важно
Не надо делать |
|||
|
34
Волшебник
29.12.25
✎
19:17
|
(33) Не надо запрещать гуру делать то, что они могут и хотят.
|
|||
|
35
Garykom
гуру
29.12.25
✎
19:23
|
(32) Грубо говоря в 1С 7.7 можно было смело из формы в цикле хреначить вызовы процедуры/функции общего модуля
В 1С 8 ОФ это уже нежелательно В 1С 8 УФ - строго противопоказано Вместо цикла с разными параметрами надо все параметры в одну сущность (массив или структуру или еще что) и одним вызовом сервера передавать И уже на сервере делать цикл |
|||
|
36
Garykom
гуру
29.12.25
✎
19:20
|
(34) Да если цикл небольшой то можно не париться
А вот если цикл большой и время обработки сравнимо с затратами на сам вызов - надо понимать и избегать |
|||
|
37
Волшебник
29.12.25
✎
19:22
|
(35) Грубо говоря, в ОФ мы можем делать то, что хотим, и это будет быстрее в 10 раз.
|
|||
|
38
Волшебник
29.12.25
✎
19:21
|
(36) Ваше "надо избегать" мы будем иметь в виду в режиме "Ваш звонок очень важен для нас"
|
|||
|
39
TormozIT
гуру
29.12.25
✎
19:28
|
"Нутром чую" что есть тут неоптимальная реализация (и можно ускорить). Уж сильно много уходит на ЛОКАЛЬНЫЙ ПУСТОЙ БЕСКОНТЕКСТНЫЙ серверный вызов то.
|
|||
|
40
TormozIT
гуру
29.12.25
✎
19:31
|
(30) Кстати судя по этому логу. Отправка запроса и его обработка на сервере выполняется менее 1мс. Где же остальное время?
|
|||
|
41
Волшебник
29.12.25
✎
19:31
|
(39) Если ускорить сейчас, то как мы будем ускорять через 10 лет? Думайте стратегически
|
|||
|
42
Злопчинский
29.12.25
✎
19:32
|
(35) ну, оно и в 77 вызов процедур/функций ГМ и обращение к глобальным переменным жрало больше ресурса, просто задач, где это действительно критично - ну вот у меня с встречавшимися объемами данных/потребностями - ну не было... В 8ке, видимо, все не так, ребята... шаг влево/вправо - летит ломом по черепушке?
|
|||
|
43
Волшебник
29.12.25
✎
19:36
|
(42) Вы не понимаете разделение контекстов клиент и сервер. Вы вообще не программист, потому что не понимаете контекст.
|
|||
|
44
Злопчинский
29.12.25
✎
19:38
|
Смело. Молодежно.
|
|||
|
45
Волшебник
29.12.25
✎
19:41
|
(44) Смело и молодёжно писать "77" вместо "7.7", а понимать контекст — это нормально.
|
|||
|
46
TormozIT
гуру
29.12.25
✎
20:00
|
На всякий случай еще проверил тест в обычном приложении из управляемой формы. Как и ожидалось, это не изменило картину, т.е. именно тип клиентского приложения добавляет длительность.
|
|||
|
47
Garykom
гуру
29.12.25
✎
20:16
|
(46) Еще проверь когда клиент УФ и сервер на одном физическом сервере
И когда на разных )) Блин ну логично же все Тонкий клиент с УФ - там сервер дальше от клиента но поближе к СУБД Толстый клиент с ОФ - по сути сервер частично на клиенте физически, но далек от СУБД |
|||
|
48
Garykom
гуру
29.12.25
✎
20:17
|
(47)+ Это я к тому а ты проверял/сравнивал для разных типов клиентских приложений как выглядит вся цепочка от формы на клиенте 1С до СУБД?
Что будет в этом случае быстрей? |
|||
|
49
TormozIT
гуру
29.12.25
✎
21:40
|
(47) Ты писал: "Еще проверь когда клиент УФ и сервер на одном физическом сервере"
А я везде писал про то, что сервер локальный. Получается что я уже именно так и проверил. |
|||
|
50
TormozIT
гуру
29.12.25
✎
22:01
|
Лог TCP передачи УП
![]() Лог TCP передачи ОП ![]() |
|||
|
51
Garykom
гуру
29.12.25
✎
22:12
|
(49) Тогда проверь когда наоборот на разных физических
И сравни толстый клиент ОФ с тонким УФ |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |