COM демонстрирует очень высокую производительность. Читатель,
интересующийся этим вопросом, найдет большое количество очень
интересной информации в прекрасной книге R. Orfali и D. Harkey
“Client/server Programming with Java and CORBA”, second edition, Wiley, 1998.
Разумеется, производительность существенно зависит от того, какой способ -
статический или динамический - вы используете.
CORBA
Для корректного сравнения CORBA и COM с точки зрения
производительности необходимо составить целую систему тестов. Кроме
того, необходимо учесть влияние использования того или иного языка
программирования. На основе информации, приводимой Orfali и Harkey, а
также результатов небольшого сравнительного тестирования, проведенного
самим автором обзора (использовался Borland C++ Builder 4.0 и VisiBroker
3.3 для C++), можно сказать, что CORBA демонстрирует даже несколько
более высокую производительность. Еще раз повторимся:
производительность очень сильно зависит от количества и типов аргументов
методов (не забывайте, что их нужно упаковать и передать по сети, а затем
распаковать), от выбранной модели управления потоками, от используемых
языков программирования (клиент и сервер при этом не обязательно должны
быть написаны на одном языке), от конкретной реализации CORBA и многих
других факторов.
Выводы
И COM, и CORBA демонстрируют примерно одинаковую (и очень
высокую) производительность. Для CORBA говорить о конкретных цифрах
можно только для конкретной реализации. В качестве примера приведем
следующий факт: Inprise/Visigenic Visibroker прозрачным для разработчика
образом работает по-разному в зависимости от того, находятся ли
клиентский и серверный объект в одном адресном пространстве, в разных
адресных пространствах, но на одном компьютере, или на разных
компьютерах. Производительность при этом может отличается на порядок.