<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Workin' on it. &#187; apache</title>
	<atom:link href="http://jameshalberg.wordpress.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://jameshalberg.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sat, 19 Nov 2011 14:15:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='jameshalberg.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Workin' on it. &#187; apache</title>
		<link>http://jameshalberg.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jameshalberg.wordpress.com/osd.xml" title="Workin&#039; on it." />
	<atom:link rel='hub' href='http://jameshalberg.wordpress.com/?pushpress=hub'/>
		<item>
		<title>A Quick Speed Boost</title>
		<link>http://jameshalberg.wordpress.com/2008/01/23/a-quick-speed-boost/</link>
		<comments>http://jameshalberg.wordpress.com/2008/01/23/a-quick-speed-boost/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 03:27:17 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[performance]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[expires header]]></category>
		<category><![CDATA[mod_deflate]]></category>

		<guid isPermaLink="false">http://jameshalberg.com/2008/01/23/a-quick-speed-boost/</guid>
		<description><![CDATA[We recently moved some of our processing from Engine Yard over to Contegix. The initial results are really positive &#8211; big boosts in our processing power and capacity. Part of the conversion, of course, is getting brand new servers setup &#8230; <a href="http://jameshalberg.wordpress.com/2008/01/23/a-quick-speed-boost/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jameshalberg.wordpress.com&amp;blog=160606&amp;post=103&amp;subd=jameshalberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We recently moved some of our processing from Engine Yard over to Contegix.  The initial results are really positive &#8211; big boosts in our processing power and capacity.  Part of the conversion, of course, is getting brand new servers setup (or as my coworker Justin calls it &#8220;Christmas Morning&#8221;).</p>
<p>There are lots of great stories to tell about what we&#8217;re creating and how we&#8217;re doing it but after reading an <a href="http://shmuel.ahdut.com/2008/01/how-to-tell-apache-to-deliver-content.html">old coworkers post</a> recently, I thought I&#8217;d share a few quick hitters that (can) provide significant performance boosts.</p>
<p><strong>make stuff small.</strong></p>
<p>As Shmueli eludes to: mod_deflate (previously mod_gzip) can really help out &#8211; most browsers can handle it these days and even with today&#8217;s connection speeds &#8211; smaller amounts of data == good.  Our exclude list has a tad more to it than his example, but <a href="http://www.howtoforge.com/apache2_mod_deflate">this tutorial</a> has the basics.<br />
<strong></strong></p>
<p><strong>don&#8217;t keep asking &#8220;is this old?&#8221;</strong></p>
<p>Add an expires header (where possible).  If you&#8217;re using Rails (a large percentage of our stuff does), it&#8217;s helper methods like to add 10 digit query strings to the end of static resources.  Things like this:</p>
<p>&lt;script src=&#8221;/javascripts/application.js?1200895515&#8243; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;</p>
<p>There are several approaches you can find out there that can leverage that to really speed things up.  I ended up with something <a href="http://pennysmalls.com/2007/10/19/adding-an-expires-header-with-apache-for-rails/">along these lines</a>.  It does require a symlink that gets wiped out by our Capistrano deploy (so it needs to recreate it for me each time), but&#8230; I like it &#8211; and it&#8217;s been working great.  It&#8217;s amazing how much faster and lighter things are when you let the browser use it&#8217;s cache a bit and not make so many needless requests.</p>
<p><strong>more&#8230;</strong></p>
<p>I had more trouble than good with e-tags&#8230;</p>
<p>I decided against minifying the js &#8211; I think the added complexity of the process (making sure things are minified each time, the app points at the right stuff, etc) outweighs the benefit of a slightly smaller transmission, in our case.</p>
<p>We also don&#8217;t really have pages heavy enough with images to make sprites a worthwhile endeavor at this point &#8212; This was actually a disappointment to me.  I haven&#8217;t had a chance to implement sprites yet and would really like to give them a real-world try at some point&#8230;</p>
<p><strong>and mostly&#8230;</strong></p>
<p>There are likely a bunch of other quick hitters worth implementing (I&#8217;d love to see some listed in the comments), but in the end &#8211; as always &#8211; the most important thing is just to be smart with your app.  No amount of tweaks (big or small) can overcome bad decisions in the overall implementation.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jameshalberg.wordpress.com/103/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jameshalberg.wordpress.com/103/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jameshalberg.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jameshalberg.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jameshalberg.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jameshalberg.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jameshalberg.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jameshalberg.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jameshalberg.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jameshalberg.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jameshalberg.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jameshalberg.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jameshalberg.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jameshalberg.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jameshalberg.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jameshalberg.wordpress.com/103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jameshalberg.wordpress.com&amp;blog=160606&amp;post=103&amp;subd=jameshalberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jameshalberg.wordpress.com/2008/01/23/a-quick-speed-boost/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">jameshalberg</media:title>
		</media:content>
	</item>
	</channel>
</rss>
