<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: 6 Optimization Tips for Ruby MRI</title>
	<atom:link href="http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/</link>
	<description>A goal is a dream with a deadline.</description>
	<pubDate>Fri, 21 Nov 2008 00:11:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Sho Fukamachi Online &#187; Blog Archive &#187; Review: Scaling Ruby by Envycasts/Greg Polack</title>
		<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/#comment-148314</link>
		<dc:creator>Sho Fukamachi Online &#187; Blog Archive &#187; Review: Scaling Ruby by Envycasts/Greg Polack</dc:creator>
		<pubDate>Thu, 20 Nov 2008 06:27:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=185#comment-148314</guid>
		<description>[...] a couple of minutes using google The &#8220;speed tips&#8221; at the end are stolen directly from igvita.com, without attribution of course, and the ruby threading graphs look suspiciously similar too. This [...]</description>
		<content:encoded><![CDATA[<p>[...] a couple of minutes using google The &#8220;speed tips&#8221; at the end are stolen directly from igvita.com, without attribution of course, and the ruby threading graphs look suspiciously similar too. This [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Compendio de enlaces interesantes #3 &#124; Lobo tuerto</title>
		<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/#comment-135925</link>
		<dc:creator>Compendio de enlaces interesantes #3 &#124; Lobo tuerto</dc:creator>
		<pubDate>Sun, 28 Sep 2008 03:33:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=185#comment-135925</guid>
		<description>[...] sobre el manejo de excepciones en Ruby. Aquí discuten 6 optimizaciones que se pueden aplicar a la hora de hacer programas en [...]</description>
		<content:encoded><![CDATA[<p>[...] sobre el manejo de excepciones en Ruby. Aquí discuten 6 optimizaciones que se pueden aplicar a la hora de hacer programas en [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilya Grigorik</title>
		<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/#comment-113279</link>
		<dc:creator>Ilya Grigorik</dc:creator>
		<pubDate>Mon, 18 Aug 2008 02:25:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=185#comment-113279</guid>
		<description>Rein, I agree, but I also think that context should be taken into account. Readable code is great, but slower code, in a context of extremely performance sensitive application is a poor argument.</description>
		<content:encoded><![CDATA[<p>Rein, I agree, but I also think that context should be taken into account. Readable code is great, but slower code, in a context of extremely performance sensitive application is a poor argument.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rein Henrichs</title>
		<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/#comment-111374</link>
		<dc:creator>Rein Henrichs</dc:creator>
		<pubDate>Thu, 14 Aug 2008 02:19:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=185#comment-111374</guid>
		<description>I think it's important to keep in mind that optimizing for performanze often pessimizes for the communication value of code. Remember that one of the reasons we use Ruby is for its communicativeness. Performance is merely a factor to be weighed in determining the best way to code something; it is not the only factor or even the most important.

I'd take the inject example out: it's spurious and an abuse of inject. Also, indirect variable access (creating an accessor for an instance variable, e.g. self.foo) is an OO design decision that has its own merits relative to direct access, even if it is 'slower'. Kent Beck's Smalltalk Best Practice Patterns has some good things to say on that particular subject.</description>
		<content:encoded><![CDATA[<p>I think it&#8217;s important to keep in mind that optimizing for performanze often pessimizes for the communication value of code. Remember that one of the reasons we use Ruby is for its communicativeness. Performance is merely a factor to be weighed in determining the best way to code something; it is not the only factor or even the most important.</p>
<p>I&#8217;d take the inject example out: it&#8217;s spurious and an abuse of inject. Also, indirect variable access (creating an accessor for an instance variable, e.g. self.foo) is an OO design decision that has its own merits relative to direct access, even if it is &#8217;slower&#8217;. Kent Beck&#8217;s Smalltalk Best Practice Patterns has some good things to say on that particular subject.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: links for 2008-07-17 &#124; Libin Pan</title>
		<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/#comment-106235</link>
		<dc:creator>links for 2008-07-17 &#124; Libin Pan</dc:creator>
		<pubDate>Thu, 17 Jul 2008 06:31:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=185#comment-106235</guid>
		<description>[...] 6 Optimization Tips for Ruby MRI - igvita.com (tags: ruby optimization performance tips programming development rails benchmark) [...]</description>
		<content:encoded><![CDATA[<p>[...] 6 Optimization Tips for Ruby MRI - igvita.com (tags: ruby optimization performance tips programming development rails benchmark) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilya Grigorik</title>
		<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/#comment-106217</link>
		<dc:creator>Ilya Grigorik</dc:creator>
		<pubDate>Thu, 17 Jul 2008 02:14:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=185#comment-106217</guid>
		<description>Meekish, in a good case, they should be equivalent and cached. In a bad case, instance variables might result in a hash lookup.

James, that's not skepticism, it's a legitimate question! For best proof, I would strong recommend and point you to Dr. Stefan Kaes's 'Writing Efficient Ruby Code'. 

Pistos, great stuff on interpolation!</description>
		<content:encoded><![CDATA[<p>Meekish, in a good case, they should be equivalent and cached. In a bad case, instance variables might result in a hash lookup.</p>
<p>James, that&#8217;s not skepticism, it&#8217;s a legitimate question! For best proof, I would strong recommend and point you to Dr. Stefan Kaes&#8217;s &#8216;Writing Efficient Ruby Code&#8217;. </p>
<p>Pistos, great stuff on interpolation!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pistos</title>
		<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/#comment-106126</link>
		<dc:creator>Pistos</dc:creator>
		<pubDate>Wed, 16 Jul 2008 03:26:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=185#comment-106126</guid>
		<description>James H: I've benchmarked and published some stats for point 3.  I can do the same for point 4 if there is interest.</description>
		<content:encoded><![CDATA[<p>James H: I&#8217;ve benchmarked and published some stats for point 3.  I can do the same for point 4 if there is interest.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James H</title>
		<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/#comment-106076</link>
		<dc:creator>James H</dc:creator>
		<pubDate>Tue, 15 Jul 2008 15:40:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=185#comment-106076</guid>
		<description>Pardon my skepticism, but do you have any statistics to prove these are more effective?</description>
		<content:encoded><![CDATA[<p>Pardon my skepticism, but do you have any statistics to prove these are more effective?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: meekish</title>
		<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/#comment-106031</link>
		<dc:creator>meekish</dc:creator>
		<pubDate>Tue, 15 Jul 2008 06:15:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=185#comment-106031</guid>
		<description>Point 2: Isn't the faster variable an instance variable (not a local variable)?</description>
		<content:encoded><![CDATA[<p>Point 2: Isn&#8217;t the faster variable an instance variable (not a local variable)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Catholicism Computes &#187; Benchmarking Ruby String interpolation, concatenation and appending</title>
		<link>http://www.igvita.com/2008/07/08/6-optimization-tips-for-ruby-mri/#comment-106005</link>
		<dc:creator>Catholicism Computes &#187; Benchmarking Ruby String interpolation, concatenation and appending</dc:creator>
		<pubDate>Tue, 15 Jul 2008 04:26:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=185#comment-106005</guid>
		<description>[...] recently came across 6 Optimization Tips for Ruby MRI. One of the tips provided is to use string interpolation instead of concatenation. I set out to [...]</description>
		<content:encoded><![CDATA[<p>[...] recently came across 6 Optimization Tips for Ruby MRI. One of the tips provided is to use string interpolation instead of concatenation. I set out to [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
