<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>A story about premature optimization</title><link>http://blogs.msdn.com/shawnhar/archive/2007/03/19/a-story-about-premature-optimization.aspx</link><description>Performance never ceases to be a fascinating topic. This forum thread inspired Eli to write about foreach and the garbage collector , and also got me thinking about an ancient debate between the merits of multiplication and shifting. Join me as we travel</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: A story about premature optimization</title><link>http://blogs.msdn.com/shawnhar/archive/2007/03/19/a-story-about-premature-optimization.aspx#1915563</link><pubDate>Tue, 20 Mar 2007 02:56:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1915563</guid><dc:creator>JoelMartinez</dc:creator><description>&lt;p&gt;I have to wholeheartedly agree. &amp;nbsp;Confusing code is not worth the perf improvements (in most cases). &amp;nbsp;I think what needs to happen is that .NET developers in general need to become more acquainted with profiling techniques.&lt;/p&gt;
&lt;p&gt;If we are sure that we can find and optimize perf problems, then we're likely to not bother with the premature stuff.&lt;/p&gt;
</description></item><item><title>re: A story about premature optimization</title><link>http://blogs.msdn.com/shawnhar/archive/2007/03/19/a-story-about-premature-optimization.aspx#1915610</link><pubDate>Tue, 20 Mar 2007 03:11:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1915610</guid><dc:creator>Machaira</dc:creator><description>&lt;p&gt;Gee, this topic seems familiar, like we just talked about it a couple of days ago. :)&lt;/p&gt;
&lt;p&gt;It's incredible how wrong some people are when they suggest optimizations. Thanks for attempting to clear the air. I'm sure people will just continue to believe they know that what they're doing is good. I just hope I never have to maintain the atrocious code they produce.&lt;/p&gt;
</description></item><item><title>re: A story about premature optimization</title><link>http://blogs.msdn.com/shawnhar/archive/2007/03/19/a-story-about-premature-optimization.aspx#1937851</link><pubDate>Fri, 23 Mar 2007 18:25:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1937851</guid><dc:creator>korona</dc:creator><description>&lt;p&gt;Aahh .. this takes me back to when I used to write software 3D rendering code for mode 13h.&lt;/p&gt;
&lt;p&gt;I actually also used the &amp;quot;awesome optimization trick&amp;quot; of using lookup tables for mostly everything. Notably trig functions and, yes, VGA memory offsets. I'd have something like&lt;/p&gt;
&lt;p&gt;int offsetTable[200];&lt;/p&gt;
&lt;p&gt;And use it as such:&lt;/p&gt;
&lt;p&gt;videomemory[x * offsetTable[y]] = color;&lt;/p&gt;
&lt;p&gt;It was LIGHTNING FAST!! ;)&lt;/p&gt;
</description></item><item><title>XNA Weekly Roundup 18-03-07 to 26-03-07</title><link>http://blogs.msdn.com/shawnhar/archive/2007/03/19/a-story-about-premature-optimization.aspx#1949308</link><pubDate>Mon, 26 Mar 2007 04:31:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1949308</guid><dc:creator>Mykres Space</dc:creator><description>&lt;p&gt;Ok here we go with this weeks update… It has been a relatively quite week in the world of XNA; this must&lt;/p&gt;
</description></item><item><title>re: A story about premature optimization</title><link>http://blogs.msdn.com/shawnhar/archive/2007/03/19/a-story-about-premature-optimization.aspx#9000909</link><pubDate>Wed, 15 Oct 2008 22:16:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9000909</guid><dc:creator>jasond</dc:creator><description>&lt;p&gt;I agree with everything this post says.&lt;/p&gt;
&lt;p&gt;However, it implies that -- for my game being developed under XNA Game Studio, which uses the horrid floating point support within the Compact .NET Framework on the Xbox 360 -- I should NOT optimize using fixed point, and should continue to use the floating point support, assuming that this problem with be fixed at some later date.&lt;/p&gt;
&lt;p&gt;However, when floating point code runs literally 60 times as slow (That's a 50 MHz machine vs. the 3 GHz monster we're expecting), it severely inhibits what can be achieved. &amp;nbsp;And the consensus on the XNA Forums is that the Compact .NET Framework is NOT going to be fixed any day soon.&lt;/p&gt;
&lt;p&gt;So, where does that leave us?&lt;/p&gt;
&lt;p&gt;Only one option:&lt;/p&gt;
&lt;p&gt;We have to optimize. &amp;nbsp;:(&lt;/p&gt;
</description></item></channel></rss>