<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mozilla Web Development &#187; performance</title>
	<atom:link href="http://blog.mozilla.com/webdev/tag/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.com/webdev</link>
	<description>Everybody Likes Ninjas</description>
	<lastBuildDate>Wed, 01 Feb 2012 16:41:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Use Sprites Wisely</title>
		<link>http://blog.mozilla.com/webdev/2009/06/22/use-sprites-wisely/</link>
		<comments>http://blog.mozilla.com/webdev/2009/06/22/use-sprites-wisely/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 21:10:24 +0000</pubDate>
		<dc:creator>Mike Morgan</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[sprites]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=493</guid>
		<description><![CDATA[Vlad has good points about proper use of CSS sprites in his recent post on the subject as well as his comments on Ryan&#8217;s post. In short, even the simplest sprite images can eat up massive amounts of system memory &#8212; 50MB to even 100MB per page or more. Perceived speed for your site is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.vlad1.com/">Vlad</a> has good points about proper use of <a href="http://www.stevesouders.com/spriteme/">CSS sprites</a> in <a href="http://blog.vlad1.com/2009/06/22/to-sprite-or-not-to-sprite/">his recent post on the subject</a> as well as <a href="http://blog.mozilla.com/webdev/2009/03/27/css-spriting-tips/?lolzor#comment-193484">his comments on Ryan&#8217;s post</a>.</p>
<p>In short, even the simplest sprite images can eat up massive amounts of system memory &#8212; 50MB to even 100MB per page or more.  Perceived speed for your site is important but you should always be concerned about how sprites and other hacks can affect user experience.</p>
<p>More info:</p>
<ul>
<li><a href="http://blog.mozilla.com/rob-sayre/2009/06/22/sprites/">Rob Sayre &#8211; Sprites</a></li>
<li><a href="http://blog.vlad1.com/2009/06/22/to-sprite-or-not-to-sprite/">Vladimir Vukićević &#8211; To Sprite Or Not To Sprite</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2009/06/22/use-sprites-wisely/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Graph Server Re-Write</title>
		<link>http://blog.mozilla.com/webdev/2009/02/06/graph-server-rewrite/</link>
		<comments>http://blog.mozilla.com/webdev/2009/02/06/graph-server-rewrite/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 18:12:24 +0000</pubDate>
		<dc:creator>Ryan Doherty</dc:creator>
				<category><![CDATA[Graph Server]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=204</guid>
		<description><![CDATA[Over the past few months the Graph Server team and I have been hard at work re-writing the back end for the Graph Server and it&#8217;s finally come to fruition. For those that don&#8217;t know, the Graph Server is used to display performance test data of Firefox builds reported by Talos. Our work initially started [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few months the <a href="https://wiki.mozilla.org/Perfomatic#People">Graph Server team</a> and I have been hard at work re-writing the back end for the <a href="http://graphs.mozilla.org">Graph Server</a> and it&#8217;s finally come to fruition. </p>
<p>For those that don&#8217;t know, the Graph Server is used to display performance test data of Firefox builds reported by <a href="https://wiki.mozilla.org/Buildbot/Talos">Talos</a>.</p>
<p><img src="http://people.mozilla.org/~rdoherty/graph-server.jpg" width="450" height="317" alt="Graph Server screenshot" /></p>
<p>Our work initially started as performance improvements and some new features, but the more we worked with the old architecture, it became quite apparent it would not scale (performance and feature-wise). </p>
<p>The old database schema duplicated test data in multiple tables and stored similar, but different data in the same tables. Tables had ballooned to millions (and billions) of rows that were queried for basic information such as all unique test names, resulting in queries that ran forever. And the queries that did finish were looped over in JavaScript to pull out test information, resulting in the browser locking up because it was looping over hundreds of thousands of rows.</p>
<p>If it&#8217;s not clear already, one of main issues was with the database schema; it needed to be normalized.</p>
<p>Here&#8217;s the old, non-normalized schema:</p>
<p><a href="http://people.mozilla.org/~rdoherty/old-schema.png"><img src="http://people.mozilla.org/~rdoherty/old-schema-small.gif" width="450" height="199" alt="Old Graph Server schema" /></a></p>
<p>And here&#8217;s the new, normalized schema after the team was locked in a room for an afternoon:</p>
<p><a href="https://wiki.mozilla.org/images/d/d2/Graph_server_new_db_schema2.png"><img src="http://people.mozilla.org/~rdoherty/graph-server-new.jpg" width="450" height="294" alt="New Graph Server schema" /></a></p>
<p><strong>Much</strong> cleaner, no duplicated data, easy to understand the various machines, branches and tests that are used for displaying test data. No need look at entire tables to find basic information such as test names.</p>
<p>With this new schema in place, it also required a re-write of our server-side scripts we use to fetch test information for the front end graphing component. Since Mozilla is as open as possible, instead of just changing what was needed, I decided to implement a <a href="https://wiki.mozilla.org/Perfomatic:API">JSON API</a> that would allow anyone to easily retrieve test data.</p>
<p>Lastly, our Talos <--> Graph Server communication needed to be re-written. Lars rewrote the collector script that accepts values from Talos and Alice rewrote the pieces of Talos that send data to the Graph Server.</p>
<p>After all that work, we now have a <a href="http://graphs-stage2.mozilla.org/graph.html">working stage server</a> (Firefox 3.1 or higher required due to native JSON requirement) with our new code. We have a bit more testing and some performance benchmarking to do before it goes live, but we&#8217;re happy that all the pieces are working. </p>
<p>Want to know more? We have a wiki page with more information at <a href="https://wiki.mozilla.org/Perfomatic#Rearchitecture">https://wiki.mozilla.org/Perfomatic#Rearchitecture</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2009/02/06/graph-server-rewrite/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

