【问题标题】:Is it possible to profile line-by-line in .NET? [closed]是否可以在 .NET 中逐行分析? [关闭]
【发布时间】:2014-12-18 00:20:57
【问题描述】:

我有一个关于性能的有趣问题,想知道是否有任何方法可以做我想做的事情:

我正在处理一个大型代码库(超过 10,000 行),我想运行代码并直观地分析代码中哪些行占用的时间最多。例如,是否有任何东西可以突出显示在 .NET 中占用时间最长的代码行和/或让您在每一行上花费时间?在我的脑海中,我正在可视化一些简单的东西,例如每行代码的绿色、黄色和红色突出显示,也许还有一段时间可以告诉你每行运行多长时间。

获取时间的一种方法是通过Stopwatch,但不得不一遍又一遍地添加秒表真是太痛苦了。我怎么能像这样分析我的代码库? Visual Studio 或 .NET 有什么开箱即用的功能吗?

编辑:感谢 Patrick,我发现了 ANTS,它完全符合我上面的要求(还在另一个窗口中以红色显示 HOT! 行 - 占用最多时间的行。 ..仅供参考:这不是分析器广告;我只是需要一个逐行分析器来满足我的需要,这可以解决问题,所以要么接受,要么放弃):

【问题讨论】:

  • 那里有大量的代码分析器。选择一个(或多个)并尝试一下。
  • 是的,但是就像我上面所说的那样,有没有逐行的?我不关心库调用和其他垃圾信息。
  • 这是一个有效的问题。请投票重新开放

标签: c# .net performance visual-studio analysis


【解决方案1】:

它叫做profiler,有很多。

某些 Visual Studio 版本带有内置分析工具。我常用的另一个工具是 ANTS Performance Profiler。

他们对哪种方法处于活动状态进行采样(采样),甚至根据所使用的设置以每行/语句为基础收集信息(仪器)。您可以使用它来检查哪些行最常用,或者哪些行消耗的时间最多。

作为示例,请查看my question 中有关从分析获取的统计信息的图像。

【讨论】:

  • 谢谢帕特里克,我会检查一下。我不知道为什么我的问题得到了如此消极的回应。
  • @Alexandru:您最初提出的问题和标题显示您根本不知道分析器是什么,并且 SO 用户往往对无知充满敌意——这对于关于回答问题的网站,但你去吧。
  • @JeroenMostert 说得很好。
  • Patrick,ANTS 很棒,刚刚试了一下。买起来很贵,但这正是我想要的!
  • @Alexandru:很高兴它有帮助。阅读我的回答中引用的问题作为警告。如果你使用详细的分析,它会大大降低你的应用程序的速度,使指标看起来很高,但大部分是由分析器本身造成的。不要让它愚弄你,就像我一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 1970-01-01
  • 2011-03-23
  • 2011-03-20
  • 1970-01-01
相关资源
最近更新 更多