<?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>Avoiding Coding Pitfalls with Performance Signatures</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx</link><description>On Friday of last week I gave this presentation at the Computer Measurements Group CMG2006 conference( http://www.cmg.org ). I had previously alluded to it in this posting and I have been waiting to write about it until after the conference. So for the</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Avoiding Coding Pitfalls with Performance Signatures</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1261695</link><pubDate>Tue, 12 Dec 2006 01:10:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1261695</guid><dc:creator>Pop Catalin Sever</dc:creator><description>&lt;p&gt;Although &amp;quot;Hi&amp;quot;, &amp;quot;Medium&amp;quot; and &amp;quot;Low&amp;quot; isn't that bad for starters I always felled that MSDN should have had a small frame (collapsible, and hidden by default) where cost info should be displayed.&lt;/p&gt;
&lt;p&gt;I think some sort of info for CPU cost, memory allocations, &amp;quot;garbage generation&amp;quot;, security checks/demands, tread locking, transition to kernel mode, and alike should be available.&lt;/p&gt;
&lt;p&gt;Up to now I 'reflectored' my way trough the framework to find the details of implementation and was surprised many times to find security demands or tread locking in places I didn't expect and assumed the former code to be very fast even candidate for inlining.&lt;/p&gt;
&lt;p&gt;I'm a very young software and .net developer but almost anything I had to learn about performance was the hard way. Hardly any books or articles touch this subject at a low level and in detail. For this and for learning purposes I had to dissect the framework and/or rotor and spent countless hours examining, watching, taking notes, experimenting, etc.&lt;/p&gt;
&lt;p&gt;Also the Intelisense/FXCop immediate feedback idea is great. I would also like some sort of &amp;nbsp; method performance test bench to test my methods (algorithms?) on the fly so I can experiment with different implementations, without doing a custom or full application benchmark.&lt;/p&gt;
&lt;p&gt;I definitely thing adding performance guidelines in general, even using a rough scale should help, allot.&lt;/p&gt;
&lt;p&gt;Thanks for the great article...as always :)&lt;/p&gt;
</description></item><item><title>Rico talks about adding performance data to method signatures</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1262310</link><pubDate>Tue, 12 Dec 2006 01:54:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1262310</guid><dc:creator>Jeff Abraham's WebLog</dc:creator><description>&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx"&gt;http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Avoiding Coding Pitfalls with Performance Signatures</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1262398</link><pubDate>Tue, 12 Dec 2006 02:27:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1262398</guid><dc:creator>Alois Kraus</dc:creator><description>&lt;p&gt;Very good idea. As code analysis tool this makes perfect sense. But I doubt that during typing my context is always clear and you can give exact guidance there. Since there will be no exact mesurable definition when a function is high, medium or low I guess we would have to stick to an even simpler approach: Costly, vs Cheap where you should be able to define a crystal clear definition what is costly and what not. When you seek the missing factor 20 of performance this clear distinction should do already the job. &lt;/p&gt;
&lt;p&gt;Yours,&lt;/p&gt;
&lt;p&gt; &amp;nbsp; Alois Kraus&lt;/p&gt;
</description></item><item><title>re: Avoiding Coding Pitfalls with Performance Signatures</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1267819</link><pubDate>Tue, 12 Dec 2006 20:46:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1267819</guid><dc:creator>David Levine</dc:creator><description>&lt;p&gt;Excellent idea, I like where you are going with this.&lt;/p&gt;
&lt;p&gt;Instead of categories like &amp;quot;low, medium, whatever&amp;quot; what do you think about some way of assigning a numeric ranking based estimated performance? I know that sounds like quantitative analysis but I'm thinking more along the lines of orders of magnitude, not absolute numbers. For example, use values of 1 (fast), 10, 100, 1000 (very slow). &lt;/p&gt;
&lt;p&gt;Regardless, this might give us an easy way to perform back-of-the-napkin performance estimate using different approaches to solving a problem. It might also make the code more toolable for perf/analysis tools. Perhaps the compiler could analyze the code, generate a perf number, and add it into the metadata with a custom attribute.&lt;/p&gt;
</description></item><item><title>re: Avoiding Coding Pitfalls with Performance Signatures</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1273507</link><pubDate>Wed, 13 Dec 2006 12:30:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1273507</guid><dc:creator>ricom</dc:creator><description>&lt;p&gt;Log base 10 costs is really where I'm going with this. &amp;nbsp;But it's interesting just how far you can get far with only 3 categories.&lt;/p&gt;
&lt;p&gt;It's important to remember that anything like this is only an approximate cost and only usually in one dimension. &amp;nbsp;More costs, more dimensions, etc. are better for performance types (like maybe most of my readers?) but for the everyman keeping this simple and avoiding big mistakes is really a good thing.&lt;/p&gt;
</description></item><item><title>Do Performance Analysis in Context</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1342003</link><pubDate>Thu, 21 Dec 2006 23:04:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1342003</guid><dc:creator>Rico Mariani's Performance Tidbits</dc:creator><description>&lt;p&gt;I had an interesting email conversation here at work recently and as usual I can't share it all but I&lt;/p&gt;
</description></item><item><title>Performance Quiz #12 -- The Cost of a Good Hash -- Some Help</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1523247</link><pubDate>Wed, 24 Jan 2007 22:31:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1523247</guid><dc:creator>Rico Mariani's Performance Tidbits</dc:creator><description>&lt;p&gt;I continue to be astounded by what my readers can come up with. As usual I had a purpose for posing my&lt;/p&gt;
</description></item><item><title>.NET Framework Allocation Complexity Graph</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1537651</link><pubDate>Fri, 26 Jan 2007 21:16:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1537651</guid><dc:creator>Rico Mariani's Performance Tidbits</dc:creator><description>&lt;p&gt;A quick graphical view of how the framework measures up. This graph shows the number of methods of any&lt;/p&gt;
</description></item><item><title>.NET Framework 2.0 Allocation Complexity Graph</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1539218</link><pubDate>Sat, 27 Jan 2007 02:17:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1539218</guid><dc:creator>Rico Mariani's Gallery</dc:creator><description>&lt;p&gt;This graph shows the number of methods of any given allocation complexity on a logarithmic scale. ...&lt;/p&gt;
</description></item><item><title>.NET Framework Cost Metrics</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1543169</link><pubDate>Sat, 27 Jan 2007 17:37:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1543169</guid><dc:creator>Impersonation Failure</dc:creator><description>&lt;p&gt;Rico Mariani included a very interesting file in his latest performance quiz post which shows all the&lt;/p&gt;
</description></item><item><title>Performance Signatures CMG 2006 Paper</title><link>http://blogs.msdn.com/ricom/archive/2006/12/11/avoiding-coding-pitfalls-with-performance-signatures.aspx#1621198</link><pubDate>Wed, 07 Feb 2007 22:18:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1621198</guid><dc:creator>Rico Mariani's Performance Tidbits</dc:creator><description>&lt;p&gt;I presented this paper at the CMG 2006 conference. I've previously posted the content of my slides and&lt;/p&gt;
</description></item></channel></rss>