要查找一个或多个 CPU 并不始终以用户模式运行的时间期段,您可以使用 [时间线] 标签中的 [抽样] 栏。抽样显示了每个微观状态中所花费时间量的彩色编码表示。彩色代码显示在右窗格的 [事件] 标签中。默认情况下,[用户 CPU] 时间以绿色编码。抽样中的数据包括所有 LWP,因此如果您的应用程序创建比 CPU 更多的 LWP,当应用程序以 100% 的 CPU 效率运行时,仅会有部分抽样区域以绿色编码。
该详细信息显示在每个微观状态中花费的时间。可以使用此信息决定是否要进一步研究。
选择 [视图] [过滤数据],然后选择实验和抽样数。
找到所关注的区域后,可以使用以下方法之一找出产生问题的函数。
您可以选择事件并使用箭头键逐一浏览各事件,同时在 [事件] 标签中查看详细信息。您可能需要加以放大才能区分各个事件。
单击事件标记的彩色矩形之一,从调用堆栈中选择相应的函数。叶函数位于顶部。
通过执行以下操作之一选择可见度量:
单击重要度量之一的列标题,选择排序度量。
找到可能是问题根源的函数后,您可以检查带注释的源代码或反汇编代码,以找到引起高度量值的源行或指令。有关如何执行此操作的详细信息,参见查找程序中的问题点。
另请参见 | |
---|---|
时间线标签 事件标签 图例标签 |