VS 2010 Performance Explorer

AVP*_*P06 5 .net performance monitor wizard

我开始在VS 2010中探索性能分析器,并且很难发现它很有用.我意识到这很可能是因为我不熟悉这个工具.

我正在寻找的是一种识别最耗时的方法调用的方法.很多时候,它只会将ASP.NET方法识别为最严重的违规者,例如ProcessRequest等,并且很难将其缩小到实际的方法,这需要花费很长时间.

我想识别我的代码中执行时间最长的调用.

任何指针将不胜感激.谢谢!

Chr*_*ris 2

我知道这是一个老问题,但我希望有一些提示可以帮助您或其他人:

从 Profiler 开始暂停。

这使您可以只分析您想要关注的单个页面,并消除应用程序启动、主页加载、导航到您想要分析的内容等产生的噪音。

  • 从菜单中选择“分析”>“探查器”>“从探查器暂停开始”
  • 然后在您的网站中导航到您要分析的页面之前的位置
  • 现在在 VS2010 的分析器页面上单击“恢复”开始分析
  • 返回您的网站,单击链接或按钮等加载您想要分析的页面
  • 等待它加载,然后返回 VS2010,单击“停止分析”
  • 片刻之后,您的个人资料摘要将会加载。

使用“热路径”查找瓶颈

  • 加载配置文件摘要后,将当前视图更改为“调用树”
  • 单击“扩展热路径”(带有火焰图标的按钮)
  • 这将向您显示最耗时的函数以及导致该函数的调用堆栈

解释数据

  • 第二列数字(“经过的独占时间”)显示在此特定函数(方法等)中花费的时间,不包括对其他函数的调用。
  • 倒数第二列(“调用次数”)表示调用此特定函数的次数。
  • 这两列的组合可以作为瓶颈所在的重要线索。
  • 例如,您可能会发现 System.Linq.Queryable.[something] 函数占用了总体时间的很大一部分,并且被调用了 10 或 100 次...如果是这样,则可以改进代码以简化这样您减少呼叫总数将有所帮助......
  • 沿着树向上走会告诉您哪个函数引发了对该瓶颈函数的调用,以及哪个函数调用了该函数等等。

由此,您至少应该能够确定性能瓶颈在哪里以及它们发生的原因。通常,下一个挑战是想出一种更精细的方法来实现相同的结果,同时减少对耗时函数、数据库调用、IO 操作等的调用。

我希望这对您或其他遇到这个(常见)问题的人有所帮助。