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