Performance Analysis for Ajax Applications December 7, 2009
Posted by Peter Varhol in Software development, Software tools.trackback
Circa 2003, when I was at Compuware Corporation’s NuMega Lab, we engaged in a big debate on whether or not it was worthwhile to assess application performance on the Web client under Java. The architect for DevPartner Java Edition advocated strongly that there was nothing interesting going on at the client from a performance standpoint. The product manager argued that customers wanted the capability, and it shouldn’t be deprecated.
The architect won the discussion, and client profiling was removed from the product.
Now, six years later, it turns out that client performance is, in fact, very interesting, mostly because we’re executing more and more code on the client. This includes JavaScript code and Ajax. We may also be caching code or images on the browser, and need to know if cache misses are slowing down rendering more than the cache hits are helping.
That’s why last month’s release of dynaTrace for Ajax is a significant development for client-side developers. dynatrace for Ajax is a free download that runs as a helper object in Internet Explorer 6, 7, and 8, and assesses the performance of client-side code, including Ajax frameworks and custom Ajax code. Unique among performance tools, this product traces transactions through the code and looks at what happens at each step and how long it takes.
Steve Souders, Ajax expert and regular speaker at The Ajax Experience, did a brief review on it here. He points out that because of all of the data collected and presented, the initial learning curve can be high, but ultimately it is invaluable in getting an idea of Ajax performance, and in analyzing and fixing slow code.
I’ve always been interested in application performance, because it’s like a mystery to be solved. If performance or scalability are poor, you look for clues, and use those clues to form one or more hypotheses on the root cause of the problem. You can write your own logger to gather these clues at some level, but to have a fine level control over the granularity of your clues and the relationship between them, a profiler or similar tool is essential.
dynatrace for Ajax is also an acknowledgement of the importance of the client, even a Web client, in application performance. That probably wasn’t the common case six years ago, but computing architectures have a way of changing over time, and as applications change. It will be interesting to see profiling and performance analysis continue to adapt as browsers start getting more workload through the use of smart clients using the likes of Microsoft Silverlight and JavaFX.

In order to make the first steps with dynaTrace AJAX Edition easier just follow the Step-By-Step Guide that walks you through an example with Google Maps: http://blog.dynatrace.com/2009/11/17/a-step-by-step-guide-to-dynatrace-ajax-edition-available-today-for-public-download/
[...] This post was mentioned on Twitter by dynaTrace software, Peter Varhol. Peter Varhol said: Performance analysis for Ajax applications. http://pvarhol.wordpress.com/2009/12/07/performance-analysis-for-ajax-applications/ [...]