Oracle® Solaris Studio 12.4:IDE 快速入门教程

退出打印视图

更新时间: 2014 年 10 月
 
 

了解 CPU 使用情况

"CPU Usage"(CPU 使用情况)图显示了应用程序在其运行期间所使用的 CPU 总时间的百分比。

  1. 单击 "CPU Usage"(CPU 使用情况)中的 "Hot Spots..."(热点...)按钮以显示有关 CPU 时间的详细信息。

    "CPU Time Per Function"(每个函数的 CPU 时间)窗口会打开,显示程序的各个函数以及每个函数所使用的 CPU 时间。这些函数按照使用的 CPU 时间顺序列出,使用时间最多的函数将列在最前面。如果程序仍在运行,最初显示的时间是单击图形时所用的时间。

    image:“CPU Time Per Function“(每个函数的 CPU 时间)窗口中的 “CPU Usage Hot Spots“(CPU 使用情况热点)详细信息。
  2. 单击 "Function Name"(函数名)列标题以按字母顺序对函数进行排序。

    请注意两列 "CPU Time"(CPU 时间)之间的差异。"CPU Time (Inclusive)"(CPU 时间(包含))显示从进入函数的时间起直到函数退出的时间为止所花费的 CPU 总时间,包括所列函数调用的所有其他函数的时间。"CPU Time (Exclusive)"(CPU 时间(独占))仅显示特定函数所使用的时间,而不包括它所调用的任何函数。

  3. 单击 "CPU Time (Inclusive)"(CPU 时间(包含))列标题可将用时最多的函数放回到顶部。

    请注意,在我们的示例中,work_run_usrcpu() 函数的 "CPU Time (Exclusive)"(CPU 时间(专用))为 613.079,而 "CPU Time (Inclusive)"(CPU 时间(包含)) 为 613.499。这意味着 work_run_usrcpu() 函数调用的其他函数实际使用了少量的 CPU 时间,而其自身使用了大部分时间。

  4. 一些函数以粗体列出。可以转至调用这些函数的源文件。双击 work_run_usrcpu() 函数。

    image:work_run_usrcpu 函数的 “CPU Usage“(CPU 使用情况)详细信息。

    将会打开 common.c 文件,并且光标停留在第 60 行的 work_run_usrcpu() 函数上。此行的左边界中显示一些数字。

  5. 将光标悬停左边界中的数字上。这些数字是与 "CPU Time Per Function"(每个函数的 CPU 时间)窗口中所显示函数的专用和包含 CPU 时间相同的度量。这些度量四舍五入到了小数点后一位,但将鼠标悬停在这些数字上时将弹出未四舍五入前的值。common.c() 源文件中也会显示 CPU 消耗行的度量(例如在 work_run_usrcpu() 函数内执行计算的 for 循环)。

  6. 在 "CPU Time Per Function"(每个函数的 CPU 时间)窗口中,通过键入时间并按 Enter 键,或者使用箭头滚动选择秒数,将 "Time Filter"(时间过滤器)开始时间更改为 0:40。图形指示器将发生变化,如同在数据过滤控件上移动手柄时一样。如果拖动手柄,将更新 "CPU Time Per Function"(每个函数的 CPU 时间)窗口中的 "Time Filter"(时间过滤器)设置以保持一致。更重要的是,将更新为表中的函数显示的数据以反映过滤器设置,以便仅显示在该时间段内使用的 CPU 时间。

    image:work_run_usrcpu 函数的 “CPU Usage“(CPU 使用情况)详细信息,同时列出 CPU 时间和 “Time Filter“(时间过滤器)开始时间框。
  7. 也可以进行过滤以仅显示满足特定度量的数据。右键单击 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 的行。