Имя: Пароль:
1C
1С v8
Производительность УФ
0 ChAlex
 
20.09.12
00:07
УФ разработчиком 1С позиционируются как шаг вперед по повышению производительности за счет клиент-серверной архитектуры.  Вот сегодня надо было почистить немного регистр сведений (лень писать обработку - решил интерактивно). В УФ открыл список (на форме ничего дополнительного - просто список регистра с его реквизитами и измерениями, без какихой либо дополнительных извращений). Установил отбор по нужным критериям и хотел выделить весь список чтобы удалить. Нажимаю Ctrl+А (количество попадающих записей немало, точно не знаю, но не астрономическое) - и.... :) Прошло уже 2 часа. почти 500 вызовов сервера и передано и принято по 500 кбайт! всего!!! Да сервер SQL - немного пригружен (в другую базу воссанавливается копия) - но не до такой же степени! Во всяком случае база 1С вообщем-то работате,  в обычных режимах сильной тормознутости не наблюдается.

Вот и думаю: и нафиг мне такое ускорение? А параллельно - ну что ж такое кривое нужно воткнуть в платформу - чтобы элементарную операцию так посадить?! Еще на 486-х процессорах в том же Fox-е такого рода процедура - секундное дело. А на нынешнем железе - пипец!

Или это только что-то у меня с базой? Запустил на сервере, на котором стоит сервере 1С - то же самое.
1 H A D G E H O G s
 
20.09.12
00:13
(0) Попробуй раскинуть мозгом по черепной коробке и понять, что такое ДинамическийСписок
2 H A D G E H O G s
 
20.09.12
00:15
Почти наверняка размер передаваемых данных увеличивался, а время замедлялось.
3 H A D G E H O G s
 
20.09.12
00:16
тебя кстати предупредили, что число строк более 1000.
4 ChAlex
 
20.09.12
00:16
(1) - ну и что такое динамический список? Что запрос с выборкой - не то же самое, или в любой СУБД (то мже Visual FoxPro) - не та же выборка в обычный линейный список? Просто сфоормировать запрос и вывести его в отчет займет всего ничего - а тут что сложного? И что за 2 часа получить трафик в 1 мегабайт? - это предел мечтаний?
5 Stim
 
20.09.12
00:17
а что в обычных формах? как долго?
6 H A D G E H O G s
 
20.09.12
00:17
(5) все просто замечательно. единичная запись удаляется на ура.
7 H A D G E H O G s
 
20.09.12
00:18
(4) сходи в ms sql profiler, а?
8 ChAlex
 
20.09.12
00:19
да - больше 1000 строк, но встает вопрос и сколько это вычислительная скорость? 1000кB (вообще то нужно бы 500, 350кбайт ушло на передачу на сервер, но фиг с ним) /7200 сек = около 0.1 кB/сек ? Это в нынешнее то время?
9 H A D G E H O G s
 
20.09.12
00:21
(8) тыщи запросов на получение новых (тех, которые не в уже все разрастающемся списке) нескольких десятков строк. ага.
10 ChAlex
 
20.09.12
00:28
(9) -  и что вы оправдываете такую работу софта. Что тут новационного в динамическом чтении данных, в FoxPro это было реализовано в параматерических запросах еще в 90-х годах (20 лет назад). И подчитываение и выдача данных - причем здесь выполнение тысяч запросов? Запрос собственно один , данные получаются и транслируются порциями. Но видно 1С и тут идет своим путем.
11 H A D G E H O G s
 
20.09.12
00:30
(10) Я вот даже не ходил в профайлер, но чую, что запросов масса.
12 H A D G E H O G s
 
20.09.12
00:31
(10) У вас есть уникальный шанс опровергнуть мою чушь.
13 IamAlexy
 
20.09.12
00:32
(0) ну если ты дурень то причем тут 1С и разработчики ?
14 H A D G E H O G s
 
20.09.12
00:32
Смотрите, кто к нам колеса катит.
Заходи, присаживайся.
15 DGorgoN
 
20.09.12
00:35
Вчера купил феррари с мощным двиглом. Однако она собака тянуть даже 500 кг. тележку не хочет - надрывается. А Газель к примеру может. Вот жеж обломался то я с феррари. Такое уг..
16 Aleksey
 
20.09.12
00:37
(1) Дело не в списке
17 Aleksey
 
20.09.12
00:38
(12) Легко в БП 3.0 есть 2 режима формирования отчетов, через фоновые задания (т.е. на полностью на сервере) и по старинке.

И фоновые задания на порядок проигрывают, хотя тоже по идеи должны быть быстрее
18 Asmody
 
20.09.12
00:39
мдя… диагноз можно ставить
нельзя одинесникам давать нормальную трёхзвёнку. они ж по криворукости своей и нежелании думать, прежде чем делать, всё испохабят
19 Aleksey
 
20.09.12
00:39
https://1cfresh.com/forum/forum/thread.jsp?id=3361

На мисте он тоже это поднимал, сейчас сразу не найду ветку
20 ChAlex
 
20.09.12
00:40
(13) - ну если бы я хоть строчку кода написал - то мог бы отнести это на свой счет, но тут работа исключительно платформы.

(15) - неа тут чуть иной акцент к вашей притче: а именно: купил я феррари ... , а она собака даже 40 км не жжет, и нахер я ее покупал, если на велосипеде можно 70 выжать
21 Aleksey
 
20.09.12
00:42
БП 3.0.11.11 @ 8.2.15.318 серверный режим, тонкий клиент. Продолжаю тестровать БП у себя в организации.

Стандартные бухгалтерские отчеты, заполнение книги покупок и другие заполнения формируются неоправданно долго. Например, если в БП 2.0 "Карточка счета" (с отборами) с результатом в 5 проводок в таких же условиях формируется 1-2 сек., то в БП 3.0 это требует 3-5 секунд (отчет в обоих случаях открывается как расшифровка к отчету "ОСВ по счету"), при этом работа со списками справочников, журналами документов, открыте форм, проведение документов не вызывает ощущения "тормозов" (все супер!). Ради интереса попробовал работать с базой в файловом варианте - тормозов нет! Стал разбираться. Оказывается в серверном режиме каждое формирование отчета (заполнение Книги покупок и др.) выполняется в отдельном фоновом задании. Поправил вызов процедуры:
РезультатВыполнения = СформироватьОтчетСервер(ИБФайловая);


на
РезультатВыполнения = СформироватьОтчетСервер(Истина);


и получил искомые 1-2 секунды на формирование карточки счета!

Уважаемые разработчики, я понимаю, что предложенный вами режим запуска отчетов (и др.) в некоторых случаях гораздо удобнее для пользователя, что такой отчет не блокирует программу, что отговорить вас от такого режима работы отчетов (и т.п.) не получится, но не могли бы вы дать администратору базы решать, как будут запускаться отчеты, сделайте еще одну настройку, пожалуйста! А то, чувствую, бухгалтера меня засмеют: "Купили новый сервер, поставили новую программу, а получили тормоза *trollface*",


Собственно там разработчики это дело замяли

Все-таки, еще раз хотелось бы попросить не обсуждать в этом форуме технические детали, так как он ориентирован на пользователей работающих в сервисе.

Мы пришлем Вам на указанный адрес информацию по другим форумам.
22 DGorgoN
 
20.09.12
00:43
(20) Именно такой акцент и есть. Не для того тебе управляемую форму дали. Не для того.
23 H A D G E H O G s
 
20.09.12
00:44
(16) Конечно не в списке.

А ты не поленишься запустить профайлер?
24 Asmody
 
20.09.12
00:45
пока вы себе не вобьёте куда-нибудь в голову, что УФ — это браузер и ничего кроме, ничего хорошего у вас с УФ не получится
25 Stim
 
20.09.12
00:45
автор здесь ответа не найдешь. суперлюди любят разработчиков и во всех косяках винят пользователей.

если какое-то действие пользователя вызывает ошибку - виноват только пользователь и никто другой.
26 IamAlexy
 
20.09.12
00:45
(21) ахххааа.. шикарно :)

в итоге они хреначат все под модель сервиса положив свой 22ух сантиметровый желтобелый болт на бедных несчастных пользователей работающих в маленьких локальных сетях..
27 H A D G E H O G s
 
20.09.12
00:47
(24) У меня все хорошо с УФ. Но это - не браузер. ЧЯДНТ?
28 DGorgoN
 
20.09.12
00:48
(37) Придется. Будешь теперь браузером.
29 DGorgoN
 
20.09.12
00:49
(21) Скажи об этом БН. 8.2 и УФ пока не идеал. Что ж поделать. Есть альтернативы кроме агавы?
30 Asmody
 
20.09.12
00:51
(27) УФ — это браузер, чтобы показать XML, полученный с сервера, повыполнять какой-то клиентский код и отправить данные назад на сервер
31 H A D G E H O G s
 
20.09.12
00:52
(30) XML ползает от сервера и обратно?
32 H A D G E H O G s
 
20.09.12
00:53
(30) А какая разница в каком формате данные/команды ползают?
33 Asmody
 
20.09.12
00:53
(31) поставь снифер, да посмотри трафик
34 Asmody
 
20.09.12
00:54
(32) обычное приложение тоже клиент-сервер, только там всё несколько иначе
35 ChAlex
 
20.09.12
00:55
ну вот, за это время уже сервак SQL освободился - но воз и ныне там. Если сначала количество вызово ну так немного живо бежало, то с ростом их количества - все становится тормознутей и тормознутей. В начале за 5 сек.  - 10 вызовов сервера, тепереь 1 вызов за 7 сек.

(23) - могу и залезть, но что толку - я не создаю ни в SQL, ни в 1С никаких запросов и прочей лабуды, просто убедиться в том что так работат 1С - ну я и так в этом на 99% уверен. И что там например смотреть?
36 H A D G E H O G s
 
20.09.12
00:55
(33) Там сжатый траффик.
37 H A D G E H O G s
 
20.09.12
00:56
(34) Что? (я не подъеживаю, мне интересно).
38 H A D G E H O G s
 
20.09.12
00:56
(35) Тебя предупреждали о 1000 строк? Получите, распишитесь.
39 Asmody
 
20.09.12
00:58
формат не при чем, тут важен принцип. УФ работает "запрос-ответ" и связь, в общем-то, односторонняя получается: клиент сказал "дай" — сервер отдал, клиент сказал "положи" — сервер положил.
40 DGorgoN
 
20.09.12
00:58
(35) Вот именно этот момент разработчики как то не учли. Что ты выбрав кучу записей. выделишь их все и нажмешь удалить.
41 Asmody
 
20.09.12
00:59
я так ещё думаю, что у ТС клиент 1Ски ещё и память жрёт активно
42 H A D G E H O G s
 
20.09.12
00:59
(39) А обычное приложение?
43 ChAlex
 
20.09.12
01:02
(38) - а ну если так! И что такое 1000 строк в наше время? Когда база занимает 50 гигов , листинг чуть выше средней сложности документа 1С порядка 10000 срок, количество записей - миллионы и т.д. и т.п. Я бы на такое обратил внимание ну так лет 20 назад - даже тогда бы это не насторижило бы , а только привлекло бы внимание. Но сегодня - это смех да и только.
44 DGorgoN
 
20.09.12
01:02
(41) Конечно жрет ) Это ж чистый ддос своего сервака )
45 DGorgoN
 
20.09.12
01:03
(43) Ну дык не кушайте, какие проблемы? Переходите на аксапту/оракл/сап/баан и что там еще - там это реализовано (наверное).
46 Asmody
 
20.09.12
01:04
(42) в обычном приложении контакт между клиентской и серверной частью более плотный. у тебя объект на клиенте живёт со всей своей свитой, а сервер периодически ещё подрываться должен на предмет "не случилось ли с ним чего, а вдруг изменять начали, так пора уже блокировки ставить"
47 ChAlex
 
20.09.12
01:04
(40) - ага, не учли, только первое когда про плюсы говорят - сразу а вот теперь можно выделить все и операцию вполнить над списком - это поведение системы по-умолчанию. Вот я и действую согласно ихним рекомендациям :)
48 DGorgoN
 
20.09.12
01:05
(47) Каких ихних?
49 ChAlex
 
20.09.12
01:06
что - это круто, и это хорошо
50 Asmody
 
20.09.12
01:07
(47) ты просто распиши по пунктам, что происходит, когда ты выделяешь строку в списке. а потом умножь это на количество строк
51 Stim
 
20.09.12
01:08
динамический список - это когда запрос выполняется на сервере, а клиенту выдается дискретно? тогда CTRL+A должно сформировать запрос на получение всех данных от сервера,хм
52 H A D G E H O G s
 
20.09.12
01:09
(51) Плохо, Стим!
53 Asmody
 
20.09.12
01:09
(51) это ж с какого? Ctrl+A операция чисто клиентская
54 ChAlex
 
20.09.12
01:10
данная ситуация мне напоминает процесс удаления документов в 1С 2.0 (кто - не знает, была такая под DOS). Там документы за 2 года удалялись 4-е суток. Хотя тоже и в те времена не было проблем ни укого с такими объемами данных, но вот 1С удажля их по своему алгоритму (невозможно было откобчить пересчет итогов, подозреваю после пометки на удаление кажой строки в базе - пересчитывались индексы, потом пересчитывались итоги и т.п.) - результат - почти неделя времени на процедуру, которую уже тогда при нормальном напимании программы занимала минуты
55 Asmody
 
20.09.12
01:11
даже так — мы ж программисты, да? подключим ещё и ООП и учтём, что Ctrl+A — операция элемента формы.
56 Stim
 
20.09.12
01:15
(54) ну да. пересчитывались итоги и временные таблицы. зато отчеты должны были формироваться быстрее. приходилось чем-то жертвовать. попробуй на фокспро получить аналог среза последних
57 Asmody
 
20.09.12
01:16
(56) ладно срез последних, вот остатки периодами на "сырых" данных получить — это весело
58 DGorgoN
 
20.09.12
01:40
(56) Да как бы выкручивались в свое время. Хотя согласен в 1-ке все таки удобнее.
59 hhhh
 
20.09.12
02:00
(47) по теории вероятностей рядовой бухгалтер нажмет кнопку Ctrl-A  с вероятностью 0,0001%. Поэтому Нуралиев и решил не заморачиваться по этому поводу. Есть гораздо более важные проблемы, которые в 1С не решены.
60 ChAlex
 
20.09.12
11:40
(51) - согласен на все 100! И так сухие цифры (вчера уже спать охота было). По-утру процедура отработала, а может и нет, ибо на мониторе не было выделенного блока, а курсор стоял где-то в массиве. Может где мышкой лишний раз щелкнул - не важно. Резюме: количество вызовов сервера 774, времы выполнения 162.57 (это я так понимаю в минутах :)), принято 1 304 736, передано 458 485 (и это всего-то трафика!!!), количество записей 29 900.

Теперь по по поводу "да это нормально, ты сам дурак...". Все в той же форме где пытаюсь отметить строки навигация то идет нормально!! (Ctrl+end - и конец списка, без всяких тормозов). Значит с получением данных то все получается (в том числе и с динамическим считыванием и т.п), и динамический список как таковой ни причем(худо бедно но работает в части получения данных). Ну чем Ctrl+a отличается от просто перемещения в конец списка? Да ничем, нужно только отметить строки. А тут и есть полная Ж - и полностью созданная разработчиком. Я просто не понимаю причин, почему это нужно было так сделать, кроме одной: руки (в данном случае голова) у разработчика не из того места растет. На сервере есть объект формы, которая отображается на клиенте, там - все что угодно можно было творить при этом даже не показывая клиенту, зачем 800 вызовов сервера? Я что на клавиши давлю? Да же задача решенная другим боком: вывел в отчет в СКД все строки и их выделил - время 25 секунд на формирование отчета и 0,5 секунды на выделение. Здесь что иной объем данных?!!! Да просто нарисовал обработку в толстом клиенте на удаление этих строк: время выполнения 8 минут - это ж не те часы!!!.

Вообщем как бы не пыхтели в 1С клиент-серверная реализация сделана через задний проход (пусть кому то будет радостней что не везде) но во многом это так.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.