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