Friday, November 10, 2006

A good story

I recently had a slowness issue keeping my old project from going into full BETA. The issue would show up on Windows 2k3, however not on XP Pro. Essentially what was happening was that a certain page in the project was taking 9 - 30 seconds to load with small amounts of data (between 30 and 100 records), obviously an unacceptable amount of time. Trace.axd revealed that the page itself was loading and processing in ~.12 seconds, however it was taking the rest of the time to render. This was a big deal, and beyond the scope of my code to debug, so I decided to get a little backup from Microsoft to find out why there was such a huge discrepency between Win XP and Win 2k3, as well as what was taking so long in the pre-render through rendering phases. Well three days later we found that the issue was within one of our component vendor's controls (we use DevExpress), and specifically the licensing call. As it turns out the licensing call was being made recursively every time the page was hit. This execution "explosion" was the cause of our problems. So we contacted DevExpress, provided them with all of Microsoft's data and our own data (traces, dumps, etc.), and to our surprise we were given a bit of a run around by their support people.

At this point things look bleak (vendor giving you the run around with a critical piece of software), however all was not lost. The hero of the story on the DevExpress side would be their CTO: Julian. We contacted him with our troubles, he got to the bottom of it, we received a release fixing the licensing issue, and we were informed that in the future they would be rewriting the component in question in order to fully optimize it for speed. So in the end everyone was a winner, I have a product well on the way to production, DevExpress really came through for us (all is definitely forgiven there!), and all DevExpress users will probably be very impressed with their performance in the 6.3 release.