"CPU Usage"(CPU 使用情况)图显示了应用程序在其运行期间所使用的 CPU 总时间的百分比。
单击 "CPU Usage"(CPU 使用情况)中的 "Hot Spots..."(热点...)按钮以显示有关 CPU 时间的详细信息。
"CPU Time Per Function"(每个函数的 CPU 时间)窗口会打开,显示程序的各个函数以及每个函数所使用的 CPU 时间。这些函数按照使用的 CPU 时间顺序列出,使用时间最多的函数将列在最前面。如果程序仍在运行,最初显示的时间是单击图形时所用的时间。
单击 "Function Name"(函数名)列标题以按字母顺序对函数进行排序。
请注意两列 "CPU Time"(CPU 时间)之间的差异。"CPU Time (Inclusive)"(CPU 时间(包含))显示从进入函数的时间起直到函数退出的时间为止所花费的 CPU 总时间,包括所列函数调用的所有其他函数的时间。"CPU Time (Exclusive)"(CPU 时间(独占))仅显示特定函数所使用的时间,而不包括它所调用的任何函数。
单击 "CPU Time (Inclusive)"(CPU 时间(包含))列标题可将用时最多的函数放回到顶部。
请注意,在我们的示例中,work_run_usrcpu() 函数的 "CPU Time (Exclusive)"(CPU 时间(专用))为 613.079,而 "CPU Time (Inclusive)"(CPU 时间(包含)) 为 613.499。这意味着 work_run_usrcpu() 函数调用的其他函数实际使用了少量的 CPU 时间,而其自身使用了大部分时间。
一些函数以粗体列出。可以转至调用这些函数的源文件。双击 work_run_usrcpu() 函数。
将会打开 common.c 文件,并且光标停留在第 60 行的 work_run_usrcpu() 函数上。此行的左边界中显示一些数字。
将光标悬停左边界中的数字上。这些数字是与 "CPU Time Per Function"(每个函数的 CPU 时间)窗口中所显示函数的专用和包含 CPU 时间相同的度量。这些度量四舍五入到了小数点后一位,但将鼠标悬停在这些数字上时将弹出未四舍五入前的值。common.c() 源文件中也会显示 CPU 消耗行的度量(例如在 work_run_usrcpu() 函数内执行计算的 for 循环)。
在 "CPU Time Per Function"(每个函数的 CPU 时间)窗口中,通过键入时间并按 Enter 键,或者使用箭头滚动选择秒数,将 "Time Filter"(时间过滤器)开始时间更改为 0:40。图形指示器将发生变化,如同在数据过滤控件上移动手柄时一样。如果拖动手柄,将更新 "CPU Time Per Function"(每个函数的 CPU 时间)窗口中的 "Time Filter"(时间过滤器)设置以保持一致。更重要的是,将更新为表中的函数显示的数据以反映过滤器设置,以便仅显示在该时间段内使用的 CPU 时间。
也可以进行过滤以仅显示满足特定度量的数据。右键单击 work_run_usrcpu() 的 "CPU Time (Exclusive)"(CPU 时间(独占))度量。在我们的示例中,右键单击 "CPU Time Per Function"(每个函数的 CPU 时间)窗口中的 603.112。选择 "Show only where > CPU Time (Exclusive) == 603.112"(仅显示 CPU 时间(专用)等于 603.112 的行)。此时将过滤所有行,并仅显示其专用 CPU 时间等于 603.112 的行。