<?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>.NET Framework Allocation Complexity Graph</title><link>http://blogs.msdn.com/ricom/archive/2007/01/26/net-framework-allocation-complexity-graph.aspx</link><description>A quick graphical view of how the framework measures up. This graph shows the number of methods of any given allocation complexity on a logarithmic scale. This allocation complexity is discussed in more detail in performance quiz #12 and this summary</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: .NET Framework Allocation Complexity Graph</title><link>http://blogs.msdn.com/ricom/archive/2007/01/26/net-framework-allocation-complexity-graph.aspx#1538216</link><pubDate>Sat, 27 Jan 2007 00:47:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1538216</guid><dc:creator>Frank Hileman</dc:creator><description>&lt;p&gt;I want to measure our library this way. Is there any tool for this? Thanks.&lt;/p&gt;
</description></item><item><title>re: .NET Framework Allocation Complexity Graph</title><link>http://blogs.msdn.com/ricom/archive/2007/01/26/net-framework-allocation-complexity-graph.aspx#1539232</link><pubDate>Sat, 27 Jan 2007 02:19:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1539232</guid><dc:creator>ricom</dc:creator><description>&lt;p&gt;The thing that I used to make the data isn't shipped in any way. &amp;nbsp;I might be able to do something about that but I can't promise anything just yet.&lt;/p&gt;
&lt;p&gt;Ultimately I think it would be cool if you could compute any cost you like of your own with a little library and some custom code.&lt;/p&gt;
</description></item><item><title>re: .NET Framework Allocation Complexity Graph</title><link>http://blogs.msdn.com/ricom/archive/2007/01/26/net-framework-allocation-complexity-graph.aspx#1559006</link><pubDate>Wed, 31 Jan 2007 00:05:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1559006</guid><dc:creator>Patrick Smacchia</dc:creator><description>&lt;p&gt;The tool NDepend implements numerous interesting metrics: &lt;a rel="nofollow" target="_new" href="http://www.ndepend.com/Metrics.aspx"&gt;http://www.ndepend.com/Metrics.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Level metric: that gives you a precise idea of which method/type/namespace/assembly is high/mid or low level:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.ndepend.com/Metrics.aspx"&gt;http://www.ndepend.com/Metrics.aspx&lt;/a&gt;#Level&lt;/p&gt;
&lt;p&gt;SELECT TYPES ORDER BY TypeLevel DESC&lt;/p&gt;
&lt;p&gt;Did you know that the method System.Xml.Xsl.XPath.XPathBuilder.ArithmeticOperator(XPathOperator,QilNode,QilNode) has a level of 18, that the average level over all methods is 2.1 and that 64.157 methods on 157.918 are involved into a dependency cycle and thus can’t have level.&lt;/p&gt;
&lt;p&gt;SELECT METHODS WHERE !HasLevel &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Metric Rank: that uses the Google PageRank algo to pinpoints the most important types and methods&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.ndepend.com/Metrics.aspx"&gt;http://www.ndepend.com/Metrics.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Btw, it shows that the most important types of the framework are in order: ComVisibleAttribute, Object, SerializableAttribute, Boolean, CLSCompliantAttribute, Int32, GuidAttribute, String…&lt;/p&gt;
&lt;p&gt;SELECT TYPES ORDER BY TypeRank DESC&lt;/p&gt;
&lt;p&gt;The metric SizeOfInst that gives the memory footprint of an instance of a non-generic type:&lt;/p&gt;
&lt;p&gt;The System.Net.NetworkInformation.SystemIcmpV6Statistics class has the biggest footprint equals to 2064 bytes.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.ndepend.com/Metrics.aspx"&gt;http://www.ndepend.com/Metrics.aspx&lt;/a&gt;#SizeOfInst&lt;/p&gt;
&lt;p&gt;SELECT TYPES ORDER BY SizeOfInst DESC&lt;/p&gt;
&lt;p&gt;Many others metric are supported. Did you know that:&lt;/p&gt;
&lt;p&gt;The following public method has 24 parameters (while a non public method has up to 38 parameters): System.Xml.Xsl.Xslt.XsltInput.GetAttributes(Int32,String,ref.String,String,ref.String,String,ref.String,String,ref.String,String,ref.String,String,ref.String,String,ref.String,String,ref.String,String,ref.String,String,ref.String)&lt;/p&gt;
&lt;p&gt;SELECT METHODS WHERE IsPublic ORDER BY NbParameters &amp;nbsp;DESC&lt;/p&gt;
&lt;p&gt;The following public methods has 3112 IL instructions (around 500 lines of C# code) &amp;nbsp;(while a non public method has up to 5294 IL instructions)&lt;/p&gt;
&lt;p&gt;System.Web.RegularExpressions.TagRegexRunner1.Go()&lt;/p&gt;
&lt;p&gt;SELECT METHODS WHERE IsPublic ORDER BY NbILInstructions DESC&lt;/p&gt;
&lt;p&gt;The following type has a depth of inheritance equal to 11:&lt;/p&gt;
&lt;p&gt;System.Web.UI.Design.WebControls.AccessDataSourceWizardForm&lt;/p&gt;
&lt;p&gt;SELECT TYPES ORDER BY DepthOfInheritance DESC&lt;/p&gt;
&lt;p&gt;The type DataGridView is directly using 343 other types and indirectly depends on 6414 types.&lt;/p&gt;
&lt;p&gt;SELECT TYPES ORDER BY TypeCe DESC&lt;/p&gt;
&lt;p&gt;SELECT TYPES WHERE IsUsedBy &amp;quot;System.Windows.Forms.DataGridView&amp;quot; ORDER BY DepthOfIsUsedBy&lt;/p&gt;
&lt;p&gt;1420 methods of the assembly System are using 6814 methods of the assembly mscorlib.&lt;/p&gt;
&lt;p&gt;All these info and much more are available at a glance thanks to the language Code Query Language (CQL). I’ll be at Redmond during the MVP summit in March 2007 to present the tool NDepend and CQL. You can have a glance at online demo available on &lt;a rel="nofollow" target="_new" href="http://www.NDepend.com"&gt;http://www.NDepend.com&lt;/a&gt; to see how NDepend can dramatically helps developers in daily scenarios. &lt;/p&gt;
&lt;p&gt;The log allocation complexity metric is indeed meaningful and I put it in my TODO list. &lt;/p&gt;
</description></item><item><title>Performance Signatures CMG 2006 Paper</title><link>http://blogs.msdn.com/ricom/archive/2007/01/26/net-framework-allocation-complexity-graph.aspx#1621199</link><pubDate>Wed, 07 Feb 2007 22:18:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1621199</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><item><title>Synchronization Complexity in the .NET Framework</title><link>http://blogs.msdn.com/ricom/archive/2007/01/26/net-framework-allocation-complexity-graph.aspx#1691528</link><pubDate>Sat, 17 Feb 2007 00:39:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1691528</guid><dc:creator>Rico Mariani's Performance Tidbits</dc:creator><description>&lt;p&gt;Several people here (you know who you are) have been nagging me to do an analysis similar to the one&lt;/p&gt;
</description></item><item><title>Synchronization Complexity in the .NET Framework, Part 2</title><link>http://blogs.msdn.com/ricom/archive/2007/01/26/net-framework-allocation-complexity-graph.aspx#1932958</link><pubDate>Thu, 22 Mar 2007 23:00:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1932958</guid><dc:creator>Rico Mariani's Performance Tidbits</dc:creator><description>&lt;p&gt;Well it seems like an eternity ago but at last I'm writing the followup to my initial question about&lt;/p&gt;
</description></item><item><title>On Measuring Performance</title><link>http://blogs.msdn.com/ricom/archive/2007/01/26/net-framework-allocation-complexity-graph.aspx#6879718</link><pubDate>Thu, 27 Dec 2007 23:05:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6879718</guid><dc:creator>All Your Base Are Belong To Us</dc:creator><description>&lt;p&gt;To rephrase this post (or rant) in a nutshell: Measuring performance is not as simple as people think&lt;/p&gt;
</description></item></channel></rss>