Web Application Performance has always been one of my favorite topics due to its challenging and complex nature. Most developers would probably describe web application performance as the length of time and amount of resources that are required for the software to concurrently read the request, process the request, and generate an HTML response. Typically, this performance is analyzed through the use of load testing to simulate multiple users while measuring CPU, Memory Utilization, Response Time, and Database Connections. This effort is often conducted in parallel with development efforts and outside the scope of this post.
Site visitors would probably describe web application performance as the amount of time required for the entire page to be loaded into the browser and become usable. Rich Interactive Web Applications often include the download and execution of several Javascript, CSS, and image files in order for User Interface to function. Additionally, there are often Javascript and image files for ad serving, analytics, and behaviorial targeting. Perceived loading time versus actual loading time can be debated and by loading the page components in the proper order, perceived loading time can be improved without actually improving the overall load time. Despite the subtle difference between perceived and actual load time, the amount of time required to download the entire page and all of its components often dwarfs the time required for the underlying software to actually generate the response. Improving the overall page load time involves identifying and optimizing all of the page components.
(more…)