VS 2010性能资源管理器

5
我开始探索VS 2010中的性能分析器,但很难找到有用的东西。我意识到这可能是因为我不熟悉该工具。
我想要的是一种查找最耗时方法调用的方法。很多时候它会将ASP.NET方法识别为最严重的问题,如ProcessRequest等,很难缩小到实际占用时间最长的方法。
我希望只能识别代码中执行时间最长的调用方法。
如果您有任何指针,请告诉我。谢谢!
1个回答

2
我知道这是一个老问题,但我希望以下几个提示可以帮助你或其他人:
从暂停状态开始。
这样可以让您仅对要关注的单个页面进行分析,并消除应用程序启动、主页加载、导航到要分析的内容等噪音。
从菜单中选择“分析”>“性能分析器”>“以性能分析器暂停状态启动”。
然后在您的网站中导航到您想要分析的页面之前的位置。
现在,在VS2010中,单击“恢复”以开始分析。
回到您的网站,在那里单击链接或按钮等以加载您想要分析的页面。
等待它加载完成,然后回到VS2010,单击“停止分析”。
几秒钟后,您的分析摘要将加载。
使用“热路径”查找瓶颈
一旦加载了分析摘要,请将当前视图更改为调用树。
单击“展开热路径”(具有火焰图标的按钮)。
这将显示最耗时的函数以及导致其出现的调用堆栈。
解释数据
第二列数字(“经过排除的排他时间”)显示在该特定函数(方法等)中花费的时间,不包括调用其他函数的时间。
倒数第二列(“调用次数”)显示了调用此特定函数的次数。
这两列的组合可能是瓶颈所在的重要线索。
例如,您可能会发现System.Linq.Queryable。[something]函数占用了整体时间的大块,并且被调用了10或100次...如果是这样,那么优化代码以简化它,从而减少总调用次数可能会有所帮助...
向上走树将告诉您哪个函数引发了对这个瓶颈函数的调用,反过来,哪个函数调用了该函数,依此类推。
通过这些,您至少应该能够确定性能瓶颈在哪里以及为什么会出现。通常,下一个挑战是想出一种更精细的方法来实现相同的结果,减少对耗时函数、数据库调用、IO操作等的调用次数。
我希望这可以作为一个入门指南,帮助你或其他人解决这个(常见)问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接