我知道这是一个老问题,但我希望能帮助你或他人的一些建议:
使用Profiler开始暂停。
这可以让你只配置文件要注重单页,并剪下从应用噪声发射了,家里页面加载,导航至要分析一下,等
- 从菜单中,选择分析>探查>使用Profiler暂停开始
- 然后在你的网站上的点导航只是之前,您希望页面上探查页面点击“恢复”来分析在VS2010
- 现在开始分析
- 回到你的网站,点击链接或按钮等来加载要分析
- 等待它加载,然后回到在VS2010的页面,点击“停止分析”
- 片刻您的个人资料后,总结会加载。
发现使用“热路径”
- 一旦个人资料摘要已加载的瓶颈,改变当前视图调用树
- 点击“展开热路径”(钮带火焰图标)
- 这会告诉你最糟糕的时间消耗功能,以及导致它的调用堆栈
个解读数据
- 的附图中的第二列(“经过的独占时间”)显示了在这个特定的功能(方法等)中花费的时间不包括调用它对其它功能。
- 倒数第二列('呼叫次数')表示这个特定函数被调用了多少次。
- 这两列的组合可以说明瓶颈在哪里。
- 例如,你可能会发现一个System.Linq.Queryable。[东西]功能占用了整个时间的大部分时间和被称为10或100的倍数......如果是这样,可能需要优化代码来简化它,这样可以减少总体呼叫次数。 ..
- 回到树上会告诉你哪个函数将这些调用引入这个瓶颈函数,然后调用哪个函数调用该函数等等。
由此你应该至少能够确定性能瓶颈在哪里以及它们为什么发生。通常情况下,下一个挑战是想出一个更加精细的方式来实现相同的结果,而不需要耗费时间的函数,数据库调用,IO操作等。
我希望这有助于您作为初学者或其他遇到这个(普通)问题的人。