Caveat: I'm not sure if this can be deemed as a proper SO programming question!
I ran into severe performance penalties while working with the MS Office Suite due mainly to the millions of COM calls that I make to process documents. Part of the problem was fixed by using the OOXML SDK instead of using the native application's API. However, the OOXML SDK itself makes COM calls and this is slowing things down (yes, I have duly run both Visual Studio's in-built performance analyzer and BoundsChecker and made sure that the algorithms are the best we can use throughout). I figured a layer of caching speeds things up (sometimes reducing the execution time by one-fourth) quite a bit (but obviously, the speed-up varies based on my access pattern which in turn is governed by the document's content structure).
Given the fact that both COM and C++ has been around for so long, I am surprised to see that there is so little material on optimizing C++ based COM applications. (A quick search on Google should suffice to prove my point, though I wouldn't mind being proven wrong!)
- So, it would be great if you guys can help me dig out a few relevant papers from the dredges of the internet.
- Also, (since my work is so obvious) is it still worth writing up my experience as a paper?
Edit: Clarification: I'm not really looking for an alternative (since it is too late to change the underlying). I'm interested in reading up on similar problems people may have faced in the past and how they worked around the limitations.