前页 | 后页 |
调用图
- 快速发现程序在任何时间点正在做什么
- 轻松识别性能问题
- 惊讶于您能以多快的速度实现改进
- 查看您在工作中的改进并拥有证据
- 支持 C/C++ .NET和Java平台
用途
“调用图”选项通常用于活动执行速度比预期慢的情况,但它也可以简单地用于更好地理解活动期间的行为模式。
手术
Profiler 通过在一段时间内定期采样 - 或调用堆栈 - 进行操作;使用 Profiler 工具栏设置间隔。您可以使用运行特定程序,也可以附加到现有进程。 Profiler 捕获是受控的,您可以随时暂停和恢复捕获。您还可以选择在 Profiler 启动时立即启动捕获。如有必要,您可以丢弃任何捕获的样本并在同一会话期间重新开始。如果您无法继续进行相同的会话,重新启动 Profiler 既快捷又简单。
注记“进程时间(estimated)”字段显示被分析的进程已经运行了多长时间的估计,考虑到分析器在收集样本时对进程的中断。
结果
会议期间可随时产生结果;但是,必须禁用捕获才能使“报告”按钮变为活动状态。让运行多长时间由您决定。您可能知道活动何时完成,或者由于其他原因可能很明显。您在这里的原因可能是一项活动根本没有完成。
报告按钮将通过暂停捕获或完全停止 Profiler 来启用。
结果显示在报告视图中。报告打开时最初可见三个选项卡:调用图、摘要报告 (函数摘要) 和命中分析选项卡。报告可以保存为文件,存储在模型工件中或张贴在团队图书馆中。
调用图选项卡
摘要报告选项卡
命中分析选项卡
“命中分析”选项卡显示了许多列:
- 函数:函数的名称(如果模块没有符号,则为模块)
- Hits:执行函数的采样数。
- 深度:发生命中的帧号或堆栈深度。
- Occurrences:函数在此特定堆栈深度处被命中的次数
如果函数名不可用,例如窗口系统DLL,如 User32 或没有调试信息的 DLL,则显示模块名。