In an effort to blog even when I’m in a coding frenzy, I bring you this bit of bragging…
Last month I talked about AQtime, a tool I use to locate performance bottlenecks in my code. One of AQtime’s features that I neglected to mention is its comparison engine, which enables comparing the performance of different versions of the same routine to find out which one is the fastest.
Among the most-frequently called routines in FeedDemon is one which returns the location of a feed in FeedDemon’s internal database. This routine is called every time FeedDemon updates a feed, draws a feed on the screen, shows a feed in a newspaper, etc. (in other words, its performance affects the performance of a lot of other routines). When I first coded this routine, I did it very quickly so I could move on to other stuff, and I planned to come back and tweak its performance later. Of course, that never happened.
So this morning I finally bit the bullet and used AQtime to compare various ways to boost the speed of this routine. Much to my surprise, I soon found one that was over 10 times as fast as the existing code.
The lesson? It’s a mistake to keep putting off the little things you could do to improve your application. I should’ve done this a long time ago, since it makes so many parts of FeedDemon even faster than they already are.
7 thoughts on “SpeedDemon”
Is that 3.39 milliseconds?
…holy cow, it is! AQTime sounds hot.
So the question I have is this: when do we get to feel the speed? ;)
Wow. FeedDemon has always been pretty fast for me, but that’s insane. Thanks Nick!
nice work :D
I think the best rule of thumb for using performance tools is only run them before each release. Get the job done, then find the bottlenecks before worrying about which routines to speed up.
At least that’s the one we follow where I work ;)
oops, I forgot the second part of that rule… ALWAYS run them before a release. :)
I’ve been here before, with AQTime as my tool aswell.
It’s gotta make you smile when you find things like this :D
Comments are closed.