|
Очень медленная работа 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 банально долго лицензию ищет... раньше стоял кряк, установили новую платформу (она с кряком не работает) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |