.NET的分析库

时间:2009-11-12 10:53:01

标签: .net profiling

编辑: 我不是要求实现分析库的方法,我问的是否有一个(最好是免费的)

尽管.NET平台上有很多商业和免费的分析器,但它们都会以一种方式分析(更好或更差)你的应用程序代码,让你看到哪种方法调用甚至是行占用了大量的资源。 / p>

虽然这在许多快速优化情况下可能有用,但我对更直接的“库”方法感兴趣。基本上我想到了一些让我用检查点定义场景的东西,这样我就可以在版本之间进行分析和比较任何两个给定的场景。

我希望能够定义如下内容:

Mon.StartScenario("ClientReportsTime");
// Get All clients
//...
Mon.CheckPoint(); // You should be able to see memory ussage 
                 //and time taken to reach this point.
// Extract information
//..
Mon.CheckPoint();
// Finished!!
Mon.StopScenario("ClientReportsTime");

因此,场景具有可以精确识别的给定时间。这是一个相对简单的功能,当我认为它可能在某个地方时,我就要将它作为一个库来实现。你知道这样的现有图书馆吗?

3 个答案:

答案 0 :(得分:1)

您可以查看自己应用的处理信息,也许可以从WMI记录更多信息。

不幸的是,它并没有让你继续下去:(

答案 1 :(得分:1)

使用性能计数器怎么样?当您为场景定义性能计数器时,这将起作用,然后使用可用的方法(例如Increment,IncrementBy等)来记录检查点。 有关详细信息,请参阅:http://msdn.microsoft.com/en-us/library/system.diagnostics.performancecounter(lightweight).aspx

答案 2 :(得分:1)

如果您可以选择

  1. 可以为您提供精确的问题时间但只是不精确地找到它们的东西,或者

  2. 能让你精确定位问题的东西,但只是不精确地计算时间,

  3. 你更喜欢哪个?

    This method does the latter.