During FeedDemon 2.0’s development, I increasingly relied on AutomatedQA’s AQtime to help locate performance bottlenecks in my code – which it did very well. This case study on AutomatedQA’s site discusses how FeedDemon benefited from AQtime’s profiling and memory allocation debugging tools.
Here’s a snippet from the case study:
“FeedDemon uses dozens of string-handling routines that I wrote for another project [TopStyle]. These routines performed fine with the other application, but FeedDemon is extremely string intensive so performance problems in these routines had a far greater impact on FeedDemon than on my other project. Using AQtime I discovered that a seemingly innocuous routine that is used to remove HTML tags from a string was having a significant impact on FeedDemon’s performance. It was among the most poorly performing routines in FeedDemon, yet I never even considered that it would be a problem.”
4 thoughts on “AQtime Case Study: FeedDemon”
Interesting. I’m astonished to hear that AQTime supported Delphi — or did they tap in at the Windows API level?
*Ex Turbo Pascal guy here; thinks nostalgically of the past days from time to time*
AQtime actually works very well with Delphi – it even displays the Delphi source code for each routine, along with the hit count and % time of each line of code.
I’d love to hear how you used AQTime for performance profiling. We use it in our Delphi applications but currently only for memory allocation checks. We haven’t played around with the performance profiling aspects, which I know is more of it’s strong suite.
I love reading these more developer-focused articles, knowing something about the development history and style of what I consider a very succesful and commercial product.
Scott Johnson: I believe AQTime actually started as a Delphi-only or at least Delphi-focused product. I also believe it was either a decendent or at least heavily influenced by Atanas’s MemProof.
Shawn, the case study briefly describes how I use AQtime’s profiling features. The most common thing I do is create an “area” containing only FeedDemon code (ie: no Delphi routines), and then simply run FeedDemon with AQtime to uncover the performance bottlenecks.
Comments are closed.