<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Performance Troubleshooting with Domain Categories</title>
	<link>http://ericgoldsmith.com/2010/01/22/performance-troubleshooting-with-domain-categories/</link>
	<description>Random thoughts on life and technology</description>
	<pubDate>Tue, 07 Sep 2010 13:53:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>

	<item>
		<title>By: Eric Goldsmith</title>
		<link>http://ericgoldsmith.com/2010/01/22/performance-troubleshooting-with-domain-categories/#comment-5904</link>
		<author>Eric Goldsmith</author>
		<pubDate>Tue, 26 Jan 2010 15:42:12 +0000</pubDate>
		<guid>http://ericgoldsmith.com/2010/01/22/performance-troubleshooting-with-domain-categories/#comment-5904</guid>
		<description>Great questions, Steve. 

To paraphrase: When distributing load time among categories, how are the following cases handled?
 - Time ‘gaps’ where the client is processing JS, but nothing is being downloaded
 - Multiple objects being downloaded in parallel

First, let me provide some additional context for the problem space. The focus of this type of reporting is for operational monitoring, as opposed to pure performance measurement. So the goal is quick problem identification, isolation, and resolution. 

The characteristics of time ‘gaps’ due to client JS processing are dependent on the available resources on the client machine, which can vary greatly depending on the type of computer and what other things are happening on it. Since the focus of operational monitoring is on the delivery of content to the user, these client-side processing gaps are ignored in the data. So, both the category times and page load times do not include these gaps.

When multiple objects are loaded in parallel, the time is shared among all the objects loading at any moment in time. For example, if the load time of a page is divided into 10ms slices, and 5 objects load in parallel during a particular time slice, then each object is assigned 2ms of time (10 / 5) for that slice. Those times are summed for each object (or category) to determine the contribution to page load time.

This approach fulfills the goals above in helping understand the distribution of load time among categories (or domains), and quickly identifying drivers of a performance change. However, it is not intended as a development tool to estimate time savings for removing content. If page content is changed, the load behavior will change (the order objects are retrieved, the amount of parallelism, etc.), so the distribution of time to the various categories (or domains) will also change.

-Eric</description>
		<content:encoded><![CDATA[<p>Great questions, Steve. </p>
<p>To paraphrase: When distributing load time among categories, how are the following cases handled?<br />
 - Time ‘gaps’ where the client is processing JS, but nothing is being downloaded<br />
 - Multiple objects being downloaded in parallel</p>
<p>First, let me provide some additional context for the problem space. The focus of this type of reporting is for operational monitoring, as opposed to pure performance measurement. So the goal is quick problem identification, isolation, and resolution. </p>
<p>The characteristics of time ‘gaps’ due to client JS processing are dependent on the available resources on the client machine, which can vary greatly depending on the type of computer and what other things are happening on it. Since the focus of operational monitoring is on the delivery of content to the user, these client-side processing gaps are ignored in the data. So, both the category times and page load times do not include these gaps.</p>
<p>When multiple objects are loaded in parallel, the time is shared among all the objects loading at any moment in time. For example, if the load time of a page is divided into 10ms slices, and 5 objects load in parallel during a particular time slice, then each object is assigned 2ms of time (10 / 5) for that slice. Those times are summed for each object (or category) to determine the contribution to page load time.</p>
<p>This approach fulfills the goals above in helping understand the distribution of load time among categories (or domains), and quickly identifying drivers of a performance change. However, it is not intended as a development tool to estimate time savings for removing content. If page content is changed, the load behavior will change (the order objects are retrieved, the amount of parallelism, etc.), so the distribution of time to the various categories (or domains) will also change.</p>
<p>-Eric</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve Souders</title>
		<link>http://ericgoldsmith.com/2010/01/22/performance-troubleshooting-with-domain-categories/#comment-5888</link>
		<author>Steve Souders</author>
		<pubDate>Mon, 25 Jan 2010 17:28:40 +0000</pubDate>
		<guid>http://ericgoldsmith.com/2010/01/22/performance-troubleshooting-with-domain-categories/#comment-5888</guid>
		<description>The idea of breaking down overall performance into categories by type of content is great. The hard part is, the load time of a page is not the sum of the individual parts. While some JavaScript is executing, downloads are happening. And while a download is happening, rendering might be blocked. And multiple downloads often happen in parallel. Can you expand on how you allocate page load time to individual categories given the high degree of overlap during page load?</description>
		<content:encoded><![CDATA[<p>The idea of breaking down overall performance into categories by type of content is great. The hard part is, the load time of a page is not the sum of the individual parts. While some JavaScript is executing, downloads are happening. And while a download is happening, rendering might be blocked. And multiple downloads often happen in parallel. Can you expand on how you allocate page load time to individual categories given the high degree of overlap during page load?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
