Предостережение: я не уверен, можно ли считать это правильным вопросом программирования SO!
I столкнулся с серьезным снижением производительности при работе с MS Office Suite в основном из-за миллионов вызовов COM, которые я делаю для обработки документов. Частично проблема была решена за счет использования OOXML SDK вместо использования API собственного приложения. Однако OOXML SDK сам выполняет вызовы COM, и это замедляет работу (да, я должным образом запустил как встроенный анализатор производительности Visual Studio, так и BoundsChecker, и убедился, что алгоритмы являются лучшими из тех, что мы можем использовать). Я полагал, что уровень кэширования немного ускоряет работу (иногда сокращая время выполнения на одну четверть) (но, очевидно, ускорение зависит от моего шаблона доступа, который, в свою очередь, регулируется структурой содержимого документа).
Учитывая тот факт, что и COM, и C ++ существуют так давно, я с удивлением обнаружил, что существует так мало материала по оптимизации приложений COM на основе C ++. (Быстрого поиска в Google должно хватить, чтобы доказать мою точку зрения, хотя я бы не возражал против того, чтобы меня опровергли!)
Edit: Пояснение: Я не ищу альтернативы (так как уже слишком поздно менять базовый вариант). Мне интересно узнать о схожих проблемах, с которыми люди могли столкнуться в прошлом, и о том, как они обходили ограничения.