Вход | Регистрация
 

Очень медленная работа ComConnector

Очень медленная работа ComConnector
Я
   BlackRoija
 
30.01.19 - 22:43
Уважаемые, среднее время работы предлагаемого кода на любой машине и на любой версии 1с примерно 1 сек.
(база любая, хоть типовая, хоть совсем пустая, хоть в файловом, хоть в серверном режимах)
Вопрос: что может быть неправильно установлено или настроено на сервере, из-за чего данный код работает в ОДИННАДЦАТЬ (!) раз дольше?? перепробовал штук пять платформ 1с, и файл и сервер режимы, и 32 и 64 режимы, класс V83.COMConnector зарегистрирован как обычно. Сервер 2012 R2 Standard, захожу как админ. В какую сторону копать??
(само соединение примерно 1-2 сек, что нормально)

        КаталогСБазой = "D:\TestDB\";
    Пользователь = "";
    Пароль = "";
    
    КОМ = Новый COMОбъект("V83.COMConnector");
    Коннекция = КОМ.Connect("File=" + КаталогСБазой + ";Usr=" + Пользователь + ";Pwd=" + Пароль + ";");    
    
    М = Коннекция.NewObject("Массив");
    
    ВремяНачала = ТекущаяДата();
    Для Счетчик = 1 По 100000 Цикл
        М.Добавить(123); // 100000 обращений через ComConnector        
    КонецЦикла;                              
    ВремяОкончания = ТекущаяДата();
    
    Сообщить("" + (ВремяОкончания - ВремяНачала) + " сек.");
 
 
   H A D G E H O G s
 
1 - 30.01.19 - 22:52
Это норма.
   vis_tmp
 
2 - 30.01.19 - 23:07
(1)А почему?
   palsergeich
 
3 - 30.01.19 - 23:13
(0) Потому что ты через задницу в другой базе управляешь ее языком (алегория).
   palsergeich
 
4 - 30.01.19 - 23:16
А если задницы нет (os linux, mac os), то вообще ничего не выйдет.
   palsergeich
 
5 - 30.01.19 - 23:18
Ща прибегут Гуру всякие расскажут об устройстве ОС, всякие межпроцессные маршалинги и прочую муть, но суть от этого не изменится.
   BlackRoija
 
6 - 30.01.19 - 23:24
(1) Пользователи говорят что программа стала работать в 11 раз медленнее, вот это ненормально (код, конечно же, приведен просто для примера)
   palsergeich
 
7 - 30.01.19 - 23:25
(6) Не используй COM в критичных операциях, все просто.
Com is depricated
   palsergeich
 
8 - 30.01.19 - 23:26
Там нелинейная зависимость скорости в зависимости от количества передаваемых данных.
И много чего еще.
   palsergeich
 
9 - 30.01.19 - 23:27
(7) Com is deprecated тьфу опечатался
   H A D G E H O G s
 
10 - 30.01.19 - 23:33
COM еще всех вас переживет.
 
 Рекламное место пустует
   BlackRoija
 
11 - 30.01.19 - 23:34
(7) "не используй ком" в данном случае не подходит
   palsergeich
 
12 - 30.01.19 - 23:36
(10) То что на него завязано очень много легаси лишь продлит аггонию.
Даже тяжелый корп сектор и тот потихоньку от наследия 90х освобождается.
   H A D G E H O G s
 
13 - 30.01.19 - 23:37
(11) Вызывай 1 раз метод COM-а, передав ему все данные файлом.
   H A D G E H O G s
 
14 - 30.01.19 - 23:38
(12) Ты просто не знаешь, что такое COM.
   palsergeich
 
15 - 30.01.19 - 23:39
(14) Я просто вижу массовый переход на Linux всякий, нас в этом году в том числе хотят переводить. А там этого просто нет.
   H A D G E H O G s
 
16 - 30.01.19 - 23:42
(15) Это в лучшем случае "выход в свет" - легалайз, в худшем - глупость админов в бородах и смузи.
   H A D G E H O G s
 
17 - 30.01.19 - 23:43
(16) И нет здравого ИТ директора, который гнал бы с предприятия всех этих любителей виртуалок, линуксов и прочей херни.
   palsergeich
 
18 - 30.01.19 - 23:45
(16) Не могу сказать истинные причины, они нам не доводятся. Но не легалайз, ибо и так все легально, и не смуззи, ибо такие вещи затратны и без соответствующего обоснования не прошли.
(17) В банке то? Не думаю.
   BlackRoija
 
19 - 30.01.19 - 23:51
(13) код нельзя переделать. это экзешник. (1с вызывается через comconnector из программы написанной на другом языке программирования)
   palsergeich
 
20 - 30.01.19 - 23:51
Вот с этого и надо было начинать
   palsergeich
 
21 - 30.01.19 - 23:52
А у этого экзешника есть документация? Может там есть что про параметры командной строки?
   palsergeich
 
22 - 30.01.19 - 23:54
Или может к этому софту еще как нибудь можно обратиться?
Com часто не единственный интерфейс взаимодействия
   BlackRoija
 
23 - 30.01.19 - 23:56
(21) так дело даже не в экзешнике, а в чистом 1с коде приведенном для примера - раньше он отрабатывал за 1 сек (сами можете у себя попробовать ради интереса), а стал за 11 сек. админы говорят что с сервером ничего не делали
   Fram
 
24 - 31.01.19 - 01:19
(23) а что значит "раньше"? какие то версии платформы имеются ввиду?
   rphosts
 
25 - 31.01.19 - 03:09
(2) Оля/Кома - самый тяжелый механизм окошек. твой ком - новый экземпляр 1С... правда без визуального интерфейса.

И вообще у тетя код 1С запускается 1С(екунду) - ПОЗДРАВЛЯЮ!!!
   craxx
 
26 - 31.01.19 - 03:46
(0) переходи на web-сервисы или http-сервисы.
   BlackRoija
 
27 - 31.01.19 - 08:51
(24) была 8.3.10.2667, поставили 8.3.13.1513, стало тормозить. поставили обратно 8.3.10.2667 - тормозит точно так же. может где-то что-то подчистить надо, может поднастроить, предыдущий админ уволился, наверняка знал какой-то секрет
   palsergeich
 
28 - 31.01.19 - 09:18
(27) и этот важный момент опущен.
Давай дальше.
Точно ничего кроме платформы не менялось?
Com дико привередлив к качеству сети.
   palsergeich
 
29 - 31.01.19 - 09:18
А то окажется в следующем сообщении а ещё и сервер из РФ переехал в Данию.
   Мыш
 
30 - 31.01.19 - 09:23
Интересно, что за программа такая, вызывающая 1С? И на смену платформы ей пофиг даже )
   OldCondom
 
31 - 31.01.19 - 09:25
Потрать время с пользой: вместо поиска решения с com займись созданием web сервиса. Тоже одно время возился с обменом и сверкой баз по com. Это как факс в мире коммуникаций.
   Мыш
 
32 - 31.01.19 - 09:31
(31) Или http-сервис )
   BlackRoija
 
33 - 31.01.19 - 09:46
(30) так на то он и COM чтобы всегда, везде и отовсюду работать) в пределах windows конечно)
 
 
   BlackRoija
 
34 - 31.01.19 - 09:47
(28) админы говорят что ничего не меняли
   BlackRoija
 
35 - 31.01.19 - 09:52
(31) да была бы копеечная программа разговору бы не было..
   palsergeich
 
36 - 31.01.19 - 09:56
Можно потыкать галочки наудачу в настройках dcom.
Я просто только вечером в них зайти смогу, по моему в одной из статей я натыкался на хитрость, но это было давно и я уже не помню.
   palsergeich
 
37 - 31.01.19 - 09:58
Только для чистоты эксперимента ребут машины делай. Иногда применяется без перезапуска, а иногда нет.
   wowik
 
38 - 31.01.19 - 09:59
(0) написать цикл в одну строчку, немного быстрее будет работать.
   palsergeich
 
39 - 31.01.19 - 10:01
(38) давным давно доказано что это работает только при запущенной отладке)
   BlackRoija
 
40 - 31.01.19 - 10:01
(36) именно dcom? например в закладке с com+ я уже всё поперетыкал что можно
   palsergeich
 
41 - 31.01.19 - 10:06
Com+ верно
   kabanoff
 
42 - 31.01.19 - 10:10
(0) Есть предположение, что при обращении к COM-объекту платформа гоняет его между базами. Вот и получается, что массив М ходит туда-обратно в цикле.
Ради интереса, попробуй разместить файловую базу по сети, а вместо массива - используй какую-нибудь таблицу с 10 колонками и посмотри нагрузку на сеть.

Как уже подсказали в (13), COM-объект лучше использовать 1 раз, передав ему сразу готовый массив. Например, вот так:
Значение = ЗначениеВСтрокуВнутр(ЛокальныйМассив);
УдаленныйМассив = Коннектор.ЗначениеИзСтрокиВнутр(Значение);

   wowik
 
43 - 31.01.19 - 11:12
(39) при запущенной отладке на сервере? можно ссылку с доказательством?
   BlackRoija
 
44 - 31.01.19 - 13:10
(43) без запущенной отладки. доказательство чего?
   Nirvana
 
45 - 03.02.19 - 22:57
(27) Рекомендую всё же проверить, какую версию использует сам COM-connector. Что-то там изменили по части их установки в пакетах последних релизов.
   vde69
 
46 - 03.02.19 - 23:05
вангую - дело в файле nethasp.ini

ps
банально долго лицензию ищет... раньше стоял кряк, установили новую платформу (она с кряком не работает)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует