![]() |
#1 |
Участник
|
COMConnector для 64 разрядных приложений
Коллеги.
Похоже COMConnector 3.0 не совместим с 64 разряднымы приложениями. Я прав ![]() |
|
![]() |
#2 |
Модератор
|
Да. Ждите 2009.
Сервер, кстати, работает - я запускал 4,0 на х64. Однако скорость была крайне низкой. Эмуляция 32х разрадного режима сожрала все преимущество платформы. С Уважением, Георгий |
|
![]() |
#3 |
Участник
|
Что значит "ждите"?
![]() |
|
![]() |
#4 |
Модератор
|
Цитата:
Остальное просто рассказал, относилось к серверу, не к СОМу. Спасибо, не знал, что нет эмуляции 32х разрядного режима, думал, есть ![]() С Уважением, Георгий |
|
![]() |
#5 |
Участник
|
![]()
2 George Nordic
Цитата:
Сообщение от George Nordic
Эмуляция 32х разрядного режима сожрала все преимущество платформы.
Цитата:
Сообщение от gl00mie
есть лишь thunk'и для вызова из них 64-разрядного кода ядра
|
|
![]() |
#6 |
Модератор
|
Прошу прощения. Платформа была Itanium II. http://www.seneca2.ru/archive_370_19932
С Уважением, Георгий |
|
![]() |
#7 |
Участник
|
Дополнительная память теоретически требуется на каждый вызов API-шной функции через thunk, НО каждый отдельный поток в один момент времени может вызывать, очевидно, не более одной API-шной функции, таким образом, накладные расходы на вызов 64-разрядных функций из 32-разрядного кода в общем случае в каждый момент времени не превышают размера стека, использованного под передачу параметров вызываемой функции, умноженного на количество одновременно выполняющихся в системе потоков 32-разрядных приложений. С учетом того, что обычно через стек передается относительно немного данных (в худшем случае до сотни байт), а потоков в системе обычно считанные сотни, ну тысячи, накладные расходы составят лишь десятки-сотни килобайт в каждый момент времени.
|
|
![]() |
#8 |
Участник
|
Реализовали доступ через ADO. Пришлось пожертвовать бизнес логикой...
|
|
![]() |
#9 |
Участник
|
Ну зачем сразу жертвовать бизнес-логикой? Есть же XML Web-службы, в которые можно "завернуть" вызовы Business Connector'а, - они не чувствительны к "разрядности" клиентских приложений.
|
|
![]() |
#10 |
Участник
|
Цитата:
Сообщение от gl00mie
обычно через стек передается относительно немного данных (в худшем случае до сотни байт)
Т. е., похоже, проблемы thunk'ов 32->64 могут возникнуть при недостаточных размерах стека 32-битного потока?.. Точнее, при размерах, не рассчитанных на выполнение в 64-битной среде (при вызовах API-функций, богатых параметрами)? Резерв-то указывается в исполняемом файле... |
|
![]() |
#11 |
Участник
|
Чего-то какая-то путаница возникла, по-моему...
Цитата:
|
|
|
За это сообщение автора поблагодарили: somebody (1). |
![]() |
#12 |
Участник
|
Цитата:
Сообщение от gl00mie
При чем тут размер стека и "несколько десятков-сотен байт на один вызов"?
Цитата:
Сообщение от gl00mie
при вызове через thunk используется один и тот же стек вызывающего потока, т.е. отдельный какой-нить стек мегабайтного размера (или сколько там прописано в PE-заголовке) не создается.
|
|
Теги |
com connector |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|