These days, highly available web sites have to consider performance as a core feature, rather than just an after thought. The best way to do this is to introduce instant, continuous feedback to the developer so that when they are developing new features, they can immediately see the performance impact of their changes. This document describes a system for using an in-memory profiler to display page level performance metrics within a web application, so that developers have immediate feedback necessary for maintaining high performance standards within their products.
Page 01 of 4
Page-Level Performance Profiler to Heighten Developer Awareness of Performance Implications
By Clay Lehman and Tim Lambert
Abstract
These days, highly available web sites have to consider performance as a core feature, rather than just an after thought. The best way to do this is to introduce instant, continuous feedback to the developer so that when they are developing new features, they can immediately see the performance impact of their changes. This document describes a system for using an in-memory profiler to display page level performance metrics within a web application, so that developers have immediate feedback necessary for maintaining high performance standards within their products.
Detailed Description
We have implemented an in-memory profiler that displays the appropriate metrics for each page load of a web application. This tool gives the developers a summary view of all the important performance metrics, which is immediately available when testing new features being put into an application. The immediate feedback allows developers to detect and correct possible performance issues very early in the development cycle, saving the team time and effort.
There are two parts to the implementation of this solution. The first part is an in- memory java profiler, which tracks timing information of all methods called by the code of any system that has this solution installed. The timing information will be tracked on a per-thread basis. Having a profiler that can be directly accessed in- memory, and filtered per-thread is important to giving useful information on a single page's interaction. The currently implemented solution uses "The Java Interactive Profiler" to collect this information. The second part is a Servlet Filter, which will access all performance related information for a specific user request, and then add a section to the response the user sees, which includes this information in an easy to read format. The Servlet Filter can be installed into all web applications, giving a development team consistent performance feedback across multiple projects.
The tool displays the time elapsed during rendering of each page that is displayed by the system. If the time is over a given threshold, then the timing information is displayed larger, and highlighted with red to attract attention. When a user clicks on the timing...