<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: a case for premature optimization</title>
	<atom:link href="http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/feed/" rel="self" type="application/rss+xml" />
	<link>http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/</link>
	<description>Insights from the world of computing</description>
	<lastBuildDate>Mon, 14 Sep 2009 08:17:01 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: computinglife</title>
		<link>http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-80</link>
		<dc:creator>computinglife</dc:creator>
		<pubDate>Thu, 25 Oct 2007 14:31:08 +0000</pubDate>
		<guid isPermaLink="false">http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-80</guid>
		<description>Shahar, 

My experience has been that 

Defining the load &amp; performance estimates is one thing
Obtaining the said performance is usually another. 

There is no way the performance levels one require can be obtained without actually planning &amp; designing around it. (which is what you pointed out too). The fact that folks do not consider this in their designs is my peeve.

</description>
		<content:encoded><![CDATA[<p>Shahar, </p>
<p>My experience has been that </p>
<p>Defining the load &amp; performance estimates is one thing<br />
Obtaining the said performance is usually another. </p>
<p>There is no way the performance levels one require can be obtained without actually planning &amp; designing around it. (which is what you pointed out too). The fact that folks do not consider this in their designs is my peeve.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shahar Evron</title>
		<link>http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-79</link>
		<dc:creator>Shahar Evron</dc:creator>
		<pubDate>Thu, 25 Oct 2007 14:20:49 +0000</pubDate>
		<guid isPermaLink="false">http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-79</guid>
		<description>The keyword in &quot;premature optimization&quot; is &quot;premature&quot; - and the way I understand &quot;premature&quot; in this case is either &quot;ahead of it&#039;s time&quot; or &quot;in the wrong place&quot;. This does mean that optimizing before you release is wrong - it means that spending time on optimizing pieces of code which might or might not be causing bottlenecks before you know where your bottlenecks are, is wrong. 

If you&#039;re building a piece of software that, as part of it&#039;s initial requirements, is designed to handle heavy load - what you need to do is first of all *define exactly* the amount of load you need your software to handle as parts of your requirements. Then, build your software in a way that will be best performing - but don&#039;t spend too much time optimizing the performance of parts without actually having some intelligent clue of how cost effective what your doing is. Instead, spend your time designing your software in a way that it can be easily optimized (a simple example: so that you&#039;ll be able to move from one RDMMS to another easily) when you do have a clue about where the bottlenecks are.

Oh, and also if your goals define the stress you&#039;re supposed to handle, stress testing should be an early part of your testing phase - this way you can decide whether your code handles the load it&#039;s supposed to, and if not, find your bottlenecks (a good profiler is all you need in some cases) and then - optimize (when that time is right that is!)</description>
		<content:encoded><![CDATA[<p>The keyword in &#8220;premature optimization&#8221; is &#8220;premature&#8221; &#8211; and the way I understand &#8220;premature&#8221; in this case is either &#8220;ahead of it&#8217;s time&#8221; or &#8220;in the wrong place&#8221;. This does mean that optimizing before you release is wrong &#8211; it means that spending time on optimizing pieces of code which might or might not be causing bottlenecks before you know where your bottlenecks are, is wrong. </p>
<p>If you&#8217;re building a piece of software that, as part of it&#8217;s initial requirements, is designed to handle heavy load &#8211; what you need to do is first of all *define exactly* the amount of load you need your software to handle as parts of your requirements. Then, build your software in a way that will be best performing &#8211; but don&#8217;t spend too much time optimizing the performance of parts without actually having some intelligent clue of how cost effective what your doing is. Instead, spend your time designing your software in a way that it can be easily optimized (a simple example: so that you&#8217;ll be able to move from one RDMMS to another easily) when you do have a clue about where the bottlenecks are.</p>
<p>Oh, and also if your goals define the stress you&#8217;re supposed to handle, stress testing should be an early part of your testing phase &#8211; this way you can decide whether your code handles the load it&#8217;s supposed to, and if not, find your bottlenecks (a good profiler is all you need in some cases) and then &#8211; optimize (when that time is right that is!)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: computinglife</title>
		<link>http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-75</link>
		<dc:creator>computinglife</dc:creator>
		<pubDate>Wed, 10 Oct 2007 11:59:37 +0000</pubDate>
		<guid isPermaLink="false">http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-75</guid>
		<description>Would you shell out 10,000$ for a car that goes only at 10 miles per hour? 
(A cycle - 150$  can go faster than that)</description>
		<content:encoded><![CDATA[<p>Would you shell out 10,000$ for a car that goes only at 10 miles per hour?<br />
(A cycle &#8211; 150$  can go faster than that)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ammu</title>
		<link>http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-74</link>
		<dc:creator>Ammu</dc:creator>
		<pubDate>Wed, 10 Oct 2007 11:53:43 +0000</pubDate>
		<guid isPermaLink="false">http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-74</guid>
		<description>No one has ever written anywhere that a car will b functionally complete ONLY if it goes faster than 10 miles per sec. How can u say a software is functionally complete ONLY if it works fast? If it does what it’s supposed to do it is functionally complete isn’t it? Working fast is an extra requirement rt? It wud b good if the car goes a little more faster. Similarly it wud b better if the software performs the task a bit more faster.</description>
		<content:encoded><![CDATA[<p>No one has ever written anywhere that a car will b functionally complete ONLY if it goes faster than 10 miles per sec. How can u say a software is functionally complete ONLY if it works fast? If it does what it’s supposed to do it is functionally complete isn’t it? Working fast is an extra requirement rt? It wud b good if the car goes a little more faster. Similarly it wud b better if the software performs the task a bit more faster.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: computinglife</title>
		<link>http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-9</link>
		<dc:creator>computinglife</dc:creator>
		<pubDate>Thu, 12 Jul 2007 10:27:43 +0000</pubDate>
		<guid isPermaLink="false">http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-9</guid>
		<description>In fact i was advocating premature optimization</description>
		<content:encoded><![CDATA[<p>In fact i was advocating premature optimization</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eswar</title>
		<link>http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-8</link>
		<dc:creator>Eswar</dc:creator>
		<pubDate>Thu, 12 Jul 2007 10:21:48 +0000</pubDate>
		<guid isPermaLink="false">http://computinglife.wordpress.com/2007/06/16/a-case-for-premature-optimization/#comment-8</guid>
		<description>Ok, you say premature optimization is evil. What i say from database point is that, optimization starts from day 1. May be its the other way in software, but when you start design the database, start design the schema, there you start performance optimizations. Planning is the key word i would like to use. If plan has leaks, so do software, no matter what it does!</description>
		<content:encoded><![CDATA[<p>Ok, you say premature optimization is evil. What i say from database point is that, optimization starts from day 1. May be its the other way in software, but when you start design the database, start design the schema, there you start performance optimizations. Planning is the key word i would like to use. If plan has leaks, so do software, no matter what it does!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
