CopperEgg RUM: Real Response Time Breakdown

 

 

Page Processing

 Browsers :   Chrome, FireFox, Safari, IE 9+

         Browsers supporting window.performance.timing

  • Request Send is the time between navigationStart (user click) until requestStart (request for main component was sent).It may include: Unloading previous page, DNS lookup, connect or secure connect.

  • Server is the time between requestStart and responseStart (first byte arrived).It may contain some network time since the request was sent until the request arrived to the web server.It may also contain some network time since server completion until first byte returned to browser.It should contain all web server time unless (in case of steaming) the server keeps processing a long response even after first byte arrived to the browser.

  • Transfer is the time between responseStart and domContentLoadedEventStart (all referenced js files where loaded).It contains: fetching the response of the main component. It also contains: sending requests for all referenced URLs (images, CSS, js, etc').It waits for js files and process them. It does not wait for images. some browsers are waiting for CSS file. Others are not.

  • Rendering is the time between domContentLoadedEventStart and Load event.Load event is when CopperEgg callback is called (a little after loadEventStart and a little before loadEventEnd).It contains waiting for images plus all rendering activity done by js code that what registered to be called on DOMContentLoaded event.If the application rendering is wrongly registered to be called on Load event, then the order on which all callback are called is browser dependent.

 

 Browsers :   Safari on mobile, IE 8, Phantom

Browsers supporting local storage , not window.performance.timing

  • Server is the time between unload of previous page (if instrumented) until first byte arrived to browser.First byte is the time on which the instrumentation js starts working.It may include: Unloading previous page, DNS lookup, connect or secure connect.

  • Transfer is the time between first byte and DOMContentLoaded event (all referenced js files where loaded).It contains: fetching the response of the main component. It also contains: sending requests for all referenced URLs (images, CSS, js, etc').It waits for js files and process them. It does not wait for images. some browsers are waiting for CSS file. Others are not.IE 8.0 does not support DOMContentLoaded event. Thus, its Transfer time is reported as rendering time.

  • Rendering is the time between DOMContentLoaded and Load event.Load event is when CopperEgg callback is called (a little after loadEventStart and a little before loadEventEnd).It contains waiting for images plus all rendering activity done by js code that what registered to be called on DOMContentLoaded event.If the application rendering is wrongly registered to be called on Load event, then the order on which all callback are called is browser dependent.

 

AJAX Processing

AJAX requests are measured as follows:

  • Request Send is the time between start of XMLHttpRequest.open() until the end of XMLHttpRequest.send().It may include: Request and request headers preparation, DNS lookup, and connect.

  • Server is the time from Request Send until the first byte of response arrived.It contains all server time with the same streaming disclaimer.

  • Transfer is the time since first byte returned until last byte of response arrived.It contains primarily network time. 

  • Rendering is the time since last byte returned until end of last post request callback.It contains the actual rendering time.

 

Powered by Zendesk