Есть ли способ ускорить COM?

Мое программное обеспечение активно использует COM. Это очень, очень медленно. Есть ли какой-нибудь трюк для ускорения связи COM?


person max    schedule 08.09.2009    source источник
comment
Вы должны предоставить более подробную информацию - на чем написаны клиент и сервер, является ли сервер .exe или .dll, как именно вы заметили, что он неоправданно тормозит.   -  person sharptooth    schedule 09.09.2009


Ответы (2)


Если вы еще этого не сделали, запустите компонент внутри процесса, а не в отдельном процессе сервера (dllhost.exe).

person mmx    schedule 08.09.2009
comment
Киевели: Зависит от конкретной среды. На уровне API вы выбираете контекст создания COM-объекта, передавая соответствующий аргумент параметру контекста функции CoCreateInstance. - person mmx; 08.09.2009
comment
Что это значит? Извините, я немного зеленый, когда дело доходит до этого. - person max; 08.09.2009
comment
макс: Это, вероятно, то, что вы уже делаете. Вы должны добавить немного больше контекста к своему вопросу для более полезного ответа (или вы можете задать другой вопрос об оптимизации вашей конкретной ситуации, а не общий). А пока вы можете увидеть msdn.microsoft.com/ en-us/library/ms693716(VS.85).aspx для различных параметров (в отношении процесса), которые у вас есть при создании COM-объекта. - person mmx; 08.09.2009

Запустите инструмент профилирования, чтобы точно определить, что вызывает медлительность системы. COM может показаться виноватым в хорошем дожде, но иногда медлительность вызвана вещами, которых вы не ожидаете. Не всегда та часть, которую вы понимаете меньше всего, вызывает проблемы.

Однажды все мое приложение работало медленно из-за используемой реализации пользовательской строки. Использование профилировщика спасло положение.

person Kieveli    schedule 09.09.2009