【问题标题】:VS 2010 Performance ExplorerVS 2010 性能资源管理器
【发布时间】:2011-03-30 21:56:11
【问题描述】:

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

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

我只想确定我的代码中执行时间最长的调用。

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

【问题讨论】:

    标签: .net performance monitor wizard


    【解决方案1】:

    我知道这是一个老问题,但我希望对您或其他人有所帮助:

    从 Profiler 开始暂停。

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

    • 从菜单中,选择分析 > Profiler > Start with Profiler Paused
    • 然后在您的网站中导航到您要配置的页面之前
    • 现在在 VS2010 的分析器页面上单击“恢复”开始分析
    • 返回您的网站,单击链接或按钮等以加载您要配置的页面
    • 等待它加载,然后回到 VS2010,点击“停止分析”
    • 稍后将加载您的个人资料摘要。

    使用“热路径”查找瓶颈

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

    解读数据

    • 第二列数字(“已用独占时间”)显示了在此特定函数(方法等)中花费的时间不包括它对其他函数的调用。
    • 倒数第二列(“调用次数”)表示该特定函数被调用了多少次。
    • 这两列的组合可以作为瓶颈所在的重要线索。
    • 例如,您可能会发现 System.Linq.Queryable.[something] 函数占用了总时间的很大一部分并且被调用了 10 次或 100 次...如果因此,优化代码以简化代码以减少调用的总数可能会有所帮助...
    • 从树上往回走会告诉您是哪个函数调用了这个瓶颈函数,然后又是哪个函数调用了那个函数等等。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2011-10-11
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 2020-03-30
      相关资源
      最近更新 更多