C# Visual Studio评测是否只能基于执行时间?

C# Visual Studio评测是否只能基于执行时间?,c#,visual-studio-2012,performance-testing,C#,Visual Studio 2012,Performance Testing,我使用的是VS2012 Ultimate的分析器,带有计时的“仪器”选项。 我的问题是,它报告的函数做了最多的工作,结果是执行最频繁的函数,而不是执行最慢的函数,这不是很有帮助 例如,热路径列出的项目的已用独占时间为高%,但已用独占时间为0%。我只想按独占时间和实际毫秒时间过滤,而不是%。 做最多单独工作的函数是独占时间%,这更好,但我仍然只关心单个独占时间(ms),可能是热路径中列出的最慢时间 如果我深入了解函数的详细信息,我可以找到平均执行时间,特别是排他的时间,它列出了平均花费0.5毫秒的

我使用的是VS2012 Ultimate的分析器,带有计时的“仪器”选项。 我的问题是,它报告的函数做了最多的工作,结果是执行最频繁的函数,而不是执行最慢的函数,这不是很有帮助

例如,热路径列出的项目的已用独占时间为高%,但已用独占时间为0%。我只想按独占时间和实际毫秒时间过滤,而不是%。 做最多单独工作的函数是独占时间%,这更好,但我仍然只关心单个独占时间(ms),可能是热路径中列出的最慢时间

如果我深入了解函数的详细信息,我可以找到平均执行时间,特别是排他的时间,它列出了平均花费0.5毫秒的最慢函数。 这似乎很好,但我也知道.5毫秒的平均值意味着从1000个样本中,可能900+根本不需要时间,少数可能需要一秒钟或更长时间

那么,有没有一种方法可以让VS2012探查器只查看执行时间,不仅查看平均时间,还查看最坏情况下的时间,这样我就可以跟踪到底是什么让它变慢了

VS2012根据调用的百分比突出显示代码行,我是否也可以根据(毫秒)时间而不是样本百分比来确定此突出显示和所有热路径信息的范围

另外,如果VS不能做这种分析,但是另一个程序可以用VS,我非常想知道


谢谢。

假设有一个函数需要10毫秒,调用一次,另一个函数只需要1毫秒,但调用了数百万次。哪一个更糟?对我来说,10毫秒函数更糟,因为1毫秒已经是它能达到的最快速度了,但是10毫秒函数运行程序的一次冻结(是的,我正在计算1秒和10秒),无论哪种方式,我认为选择你想看它的方式是最重要的。在某些情况下,优化的最佳方法不是使慢速方法更快,而是确保您不需要经常调用它。当然,我已经大大减少了执行时间和对慢速函数的调用次数,但它们需要偶尔使用一次。现在我需要更精确的数据,知道哪条路径在最坏的情况下是慢的,然后试着把它加速或者去掉。