Performance Analysis for Ajax Applications December 7, 2009Posted by Peter Varhol in Software development, Software tools.
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.
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.