Effective Performance Analysis

Successful Performance Analysis depends on the ability to identify bottlenecks in the application or system infrastructure. A bottleneck can be caused by any element on a page that is taking longer than other page elements to fully load, or it could be an overloaded segment of the network or a security process that is delaying the browser’s requests and responses.

Analysis and tuning is not a “one time” type of event, but rather a cyclical process of evaluation and elimination of performance bottlenecks, using iterative load testing of the application. Every cycle of a load test could uncover new issues in the system, as the elimination of one larger issue in a previous cycle might unmask other issues.

Listed below are few effective performance analysis steps/methods:

Response Size and compression

This should be the first step in performance analysis. It can be easily done using any browser plugins such as http watch/ firebug netexport/IE developer toolbar etc. The response size should not be too large and it should be compressed.

Effective Performance Analysis Size and Compression

 

External interactions/interfaces

A page might be accessing some external resources to get data like a web service hit or some 3rd party java script. These external interactions might take longer time that expected. In one of the project in which I was doing performance testing, there was a 3rd party javascript which was accessed every time the page was loaded. This javascript was not cached due to licensing issue. It happened that the URL which was used to access the javascript was blacklisted and it returned 403 errors. This type of issue can increase page response time.

Time to first byte

A long first byte time indicates that the host server is delayed in getting the beginning of the requested information back to the browser. This is most frequently caused by an overloaded host server, or a congested pathway between the server and the browser. Solution for element with a long first byte value might include having it served from a different host, moving the serving host to another location in the infrastructure, or possibly optimizing the object through the use of a Content Delivery Network (CDN)

Response transfer time

A long transfer time might indicate that the element itself might be oversized for the application. This could be rectified by allowing the application to call down the information contained in this element through a series of smaller requests or compressing it if not done.

Gaps between requests

It might appear that sometime there is a short delay between the conclusion of one request and the beginning of processing for the next request. The most frequent reason for this is that the browser requires extra time to establish a connection to the target web server. This can be tuned in the application.

Above are few areas that can be looked into for identifying the Performance bottlenecks and help in effective performance analysis.

Leave a Reply