|   |   | 
| 
 | Очень медленная работа ComConnector | ☑ | ||
|---|---|---|---|---|
| 0
    
        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 КонецЦикла; ВремяОкончания = ТекущаяДата(); Сообщить("" + (ВремяОкончания - ВремяНачала) + " сек."); | |||
| 1
    
        H A D G E H O G s 30.01.19✎ 22:52 | 
        Это норма.     | |||
| 2
    
        vis_tmp 30.01.19✎ 23:07 | 
        (1)А почему?     | |||
| 3
    
        palsergeich 30.01.19✎ 23:13 | 
        (0) Потому что ты через задницу в другой базе управляешь ее языком (алегория).     | |||
| 4
    
        palsergeich 30.01.19✎ 23:16 | 
        А если задницы нет (os linux, mac os), то вообще ничего не выйдет.     | |||
| 5
    
        palsergeich 30.01.19✎ 23:18 | 
        Ща прибегут Гуру всякие расскажут об устройстве ОС, всякие межпроцессные маршалинги и прочую муть, но суть от этого не изменится.     | |||
| 6
    
        BlackRoija 30.01.19✎ 23:24 | 
        (1) Пользователи говорят что программа стала работать в 11 раз медленнее, вот это ненормально (код, конечно же, приведен просто для примера)     | |||
| 7
    
        palsergeich 30.01.19✎ 23:25 | 
        (6) Не используй COM в критичных операциях, все просто.
 Com is depricated | |||
| 8
    
        palsergeich 30.01.19✎ 23:26 | 
        Там нелинейная зависимость скорости в зависимости от количества передаваемых данных.
 И много чего еще. | |||
| 9
    
        palsergeich 30.01.19✎ 23:27 | 
        (7) Com is deprecated тьфу опечатался     | |||
| 10
    
        H A D G E H O G s 30.01.19✎ 23:33 | 
        COM еще всех вас переживет.     | |||
| 11
    
        BlackRoija 30.01.19✎ 23:34 | 
        (7) "не используй ком" в данном случае не подходит     | |||
| 12
    
        palsergeich 30.01.19✎ 23:36 | 
        (10) То что на него завязано очень много легаси лишь продлит аггонию.
 Даже тяжелый корп сектор и тот потихоньку от наследия 90х освобождается. | |||
| 13
    
        H A D G E H O G s 30.01.19✎ 23:37 | 
        (11) Вызывай 1 раз метод COM-а, передав ему все данные файлом.     | |||
| 14
    
        H A D G E H O G s 30.01.19✎ 23:38 | 
        (12) Ты просто не знаешь, что такое COM.     | |||
| 15
    
        palsergeich 30.01.19✎ 23:39 | 
        (14) Я просто вижу массовый переход на Linux всякий, нас в этом году в том числе хотят переводить. А там этого просто нет.     | |||
| 16
    
        H A D G E H O G s 30.01.19✎ 23:42 | 
        (15) Это в лучшем случае "выход в свет" - легалайз, в худшем - глупость админов в бородах и смузи.     | |||
| 17
    
        H A D G E H O G s 30.01.19✎ 23:43 | 
        (16) И нет здравого ИТ директора, который гнал бы с предприятия всех этих любителей виртуалок, линуксов и прочей херни.     | |||
| 18
    
        palsergeich 30.01.19✎ 23:45 | 
        (16) Не могу сказать истинные причины, они нам не доводятся. Но не легалайз, ибо и так все легально, и не смуззи, ибо такие вещи затратны и без соответствующего обоснования не прошли. 
 (17) В банке то? Не думаю. | |||
| 19
    
        BlackRoija 30.01.19✎ 23:51 | 
        (13) код нельзя переделать. это экзешник. (1с вызывается через comconnector из программы написанной на другом языке программирования)     | |||
| 20
    
        palsergeich 30.01.19✎ 23:51 | 
        Вот с этого и надо было начинать     | |||
| 21
    
        palsergeich 30.01.19✎ 23:52 | 
        А у этого экзешника есть документация? Может там есть что про параметры командной строки?     | |||
| 22
    
        palsergeich 30.01.19✎ 23:54 | 
        Или может к этому софту еще как нибудь можно обратиться?
 Com часто не единственный интерфейс взаимодействия | |||
| 23
    
        BlackRoija 30.01.19✎ 23:56 | 
        (21) так дело даже не в экзешнике, а в чистом 1с коде приведенном для примера - раньше он отрабатывал за 1 сек (сами можете у себя попробовать ради интереса), а стал за 11 сек. админы говорят что с сервером ничего не делали     | |||
| 24
    
        Fram 31.01.19✎ 01:19 | 
        (23) а что значит "раньше"? какие то версии платформы имеются ввиду?     | |||
| 25
    
        rphosts 31.01.19✎ 03:09 | 
        (2) Оля/Кома - самый тяжелый механизм окошек. твой ком - новый экземпляр 1С... правда без визуального интерфейса. 
 И вообще у тетя код 1С запускается 1С(екунду) - ПОЗДРАВЛЯЮ!!! | |||
| 26
    
        craxx 31.01.19✎ 03:46 | 
        (0) переходи на web-сервисы или http-сервисы.     | |||
| 27
    
        BlackRoija 31.01.19✎ 08:51 | 
        (24) была 8.3.10.2667, поставили 8.3.13.1513, стало тормозить. поставили обратно 8.3.10.2667 - тормозит точно так же. может где-то что-то подчистить надо, может поднастроить, предыдущий админ уволился, наверняка знал какой-то секрет     | |||
| 28
    
        palsergeich 31.01.19✎ 09:18 | 
        (27) и этот важный момент опущен.
 Давай дальше. Точно ничего кроме платформы не менялось? Com дико привередлив к качеству сети. | |||
| 29
    
        palsergeich 31.01.19✎ 09:18 | 
        А то окажется в следующем сообщении а ещё и сервер из РФ переехал в Данию.     | |||
| 30
    
        Мыш 31.01.19✎ 09:23 | 
        Интересно, что за программа такая, вызывающая 1С? И на смену платформы ей пофиг даже )     | |||
| 31
    
        OldCondom 31.01.19✎ 09:25 | 
        Потрать время с пользой: вместо поиска решения с com займись созданием web сервиса. Тоже одно время возился с обменом и сверкой баз по com. Это как факс в мире коммуникаций.     | |||
| 32
    
        Мыш 31.01.19✎ 09:31 | 
        (31) Или http-сервис )     | |||
| 33
    
        BlackRoija 31.01.19✎ 09:46 | 
        (30) так на то он и COM чтобы всегда, везде и отовсюду работать) в пределах windows конечно)     | |||
| 34
    
        BlackRoija 31.01.19✎ 09:47 | 
        (28) админы говорят что ничего не меняли     | |||
| 35
    
        BlackRoija 31.01.19✎ 09:52 | 
        (31) да была бы копеечная программа разговору бы не было..     | |||
| 36
    
        palsergeich 31.01.19✎ 09:56 | 
        Можно потыкать галочки наудачу в настройках dcom.
 Я просто только вечером в них зайти смогу, по моему в одной из статей я натыкался на хитрость, но это было давно и я уже не помню. | |||
| 37
    
        palsergeich 31.01.19✎ 09:58 | 
        Только для чистоты эксперимента ребут машины делай. Иногда применяется без перезапуска, а иногда нет.     | |||
| 38
    
        wowik 31.01.19✎ 09:59 | 
        (0) написать цикл в одну строчку, немного быстрее будет работать.     | |||
| 39
    
        palsergeich 31.01.19✎ 10:01 | 
        (38) давным давно доказано что это работает только при запущенной отладке)     | |||
| 40
    
        BlackRoija 31.01.19✎ 10:01 | 
        (36) именно dcom? например в закладке с com+ я уже всё поперетыкал что можно     | |||
| 41
    
        palsergeich 31.01.19✎ 10:06 | 
        Com+ верно     | |||
| 42
    
        kabanoff 31.01.19✎ 10:10 | 
        (0) Есть предположение, что при обращении к COM-объекту платформа гоняет его между базами. Вот и получается, что массив М ходит туда-обратно в цикле.
 Ради интереса, попробуй разместить файловую базу по сети, а вместо массива - используй какую-нибудь таблицу с 10 колонками и посмотри нагрузку на сеть. Как уже подсказали в (13), COM-объект лучше использовать 1 раз, передав ему сразу готовый массив. Например, вот так: 
 | |||
| 43
    
        wowik 31.01.19✎ 11:12 | 
        (39) при запущенной отладке на сервере? можно ссылку с доказательством?     | |||
| 44
    
        BlackRoija 31.01.19✎ 13:10 | 
        (43) без запущенной отладки. доказательство чего?     | |||
| 45
    
        Nirvana 03.02.19✎ 22:57 | 
        (27) Рекомендую всё же проверить, какую версию использует сам COM-connector. Что-то там изменили по части их установки в пакетах последних релизов.     | |||
| 46
    
        vde69 03.02.19✎ 23:05 | 
        вангую - дело в файле nethasp.ini
 ps банально долго лицензию ищет... раньше стоял кряк, установили новую платформу (она с кряком не работает) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |