Performance Testing For The Masses

"FAST is cool, huh" - good friend of mine told me.

No doubt.

How do I identify the bottleneck with architecture like this?

  • Is it Browser starving resources for client side JavaScript/AJAX heavy processing?
  • Is it jumbo Http Responses (ViewState for example)?
  • Is it Web Server processing takes my time?
  • Is it Application Server (let's assume it is Web Services) takes my time?
  • Is it about DB processing?

Here is the set of tools and steps for sanity check when experiencing performance hits for web applications:

Measuring User experience (Ux) time

Information gathered during this step is the overall latency that end user would experience

Factoring browser processing time

Information gathered during this step can reveal what content type is served back before it get processed by Browser. Here is an example if the data collected by Fiddler (free download):

RESPONSE BYTES (by Content-Type)
--------------
          image/gif:            344
           ~headers:            12,017
          text/html:            66
            text/xml:            1,107
          text/plain:            687
application/json:            104,497

Fiddler gives also time to last byte for each resource too:

 

Understanding Web Server processing time (ASPX and ASMX)

Information gathered during this step can tell you which server - Web Server that serves Web Pages or Web Server that serves Web Services - consumes most of the time. Obviously former should be greater :)

For that purpose set time-taken property to be logged by IIS:

 

Measuring DB processing time

I'll leave it for another day

 

Having all this data at hand one can go ahead and focus on the troublemaker.

Performance Engineering in details is here https://msdn.com/Perf (redirects to https://msdn2.microsoft.com/en-us/library/ms998530.aspx)

 

Enjoy