Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.04;
Скачать: CL | DM;

Вниз

Передача больших по значению параметров на удаленные COM-сервера.   Найти похожие ветки 

 
Dok_3D ©   (2002-10-25 13:22) [0]

Господа, здравствуйте.
Вопрос про передачу больших по объему параметров на удаленные COM-сервера.
Проблема вот в чем:
Есть, например, такой метод сервера
AppServer.SetBigProperty(const vaName, vaValue : OleVariant);

Так вот, если параметр vaValue имеет небольшое значение (0.1, 0.5, 1 мегабайт), то все вроде как хорошо, на быстродействии не отражается.
Но если речь идет о размере в 10, 20, 30 мегабайт, то передача этого параметра занимает о-о-очень большое время, несоизмеримо большее , чем копирование файла такого-же размера по сети.
Я, конечно, понимаю, что маршалинг требует ресурсов процессора, но все - же...

Вопрос: может, есть какие-нибудь механизмы(форматы) передачи таких больших параметров на удаленные тСОМ-сервера ? Хотя бы, чтобы скорость передачи значения параметра была была близка к скорости копирования файла такого-же размера по сети.


 
Дмитрий Баранов ©   (2002-10-25 13:30) [1]

Если я ничего не путаю, в COM используется UDP - отсюда и такая разница... Но могу и лохануться ( книжки нужной под рукой нету ).


 
asmith   (2002-10-25 13:53) [2]

Тут есть еще один более неприятный момент - COM-сервер при приеме данных распределяет для них соответствующего размера буфер и если клиентов несколько, памяти может потребоваться очень много. Выход - отказ от передачи данных через SafeArray (а именно эта метода и используется) и переход на потоковые технологии (IStream) или COM Pipes (поддерживает W2k и старше). Об этом можно почитать в сентябрьском номере MSDN Magazine в статье "Marshaling Your Data: Efficient Data Transfer Techniques Using COM and Windows 2000". Другое дело, что эти методы непросто использовать из Delphi.


 
Dok_3D ©   (2002-10-25 15:35) [3]

Читаю статью приведенную статью ... Пока башка трещит.
Может быть, когда я дочитаю, еще кто-нибудь дельную мысль подкинет ?



Страницы: 1 вся ветка

Текущий архив: 2002.11.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
7-11509
978658473
2002-09-01 12:59
2002.11.04
Моя программа+память.


3-11048
Dr. Well
2002-10-14 14:38
2002.11.04
Error in expresion


1-11140
:)
2002-10-24 12:09
2002.11.04
i need help ... дочерные окна


3-11040
weak
2002-10-14 13:09
2002.11.04
ADO и параметры


14-11412
Svin
2002-10-14 13:32
2002.11.04
Знакомства