Oracle® Solaris Studio 12.4:性能分析器教程

退出打印视图

更新时间: 2014 年 12 月
 
 

了解时钟分析数据

本节使用 "Overview"(概述)页面和带 "Called-by/Calls"(调用方/调用)面板的 "Functions"(函数)视图来说明时钟分析数据。

  1. 在 "Overview"(概述)页面中,取消选中三个 HW 计数器度量的复选框,仅使 "Total CPU Time"(CPU 总时间)复选框保持选中状态。

  2. 转到 "Functions"(函数)视图,然后单击 "Incl. Total CPU"(包含 总 CPU)的列标题一次以按包含总 CPU 时间排序。

    函数 do_work() 现在应该处于列表的顶部。

    image:性能分析器的 “Functions“(函数)视图
  3. 选择 do_work() 函数并查看 "Functions"(函数)视图底部的 "Called-by/Calls"(调用方/调用)面板。

    请注意 do_work() 是从两个位置调用的,并且它调用十个函数。

    do_work() 调用的十个函数表示十个不同的任务,每个任务都具有程序执行的不同同步方法。在从 mttest 创建的一些实验中,您可能会看到第十一个函数,该函数使用相对较少的时间获取其他任务的工作块。屏幕抓图中未显示此函数。

    通常情况下,创建处理数据的线程时会调用 do_work(),并在从 _lwp_start() 调用时显示它。在一种情况下,从 locktest() 被调用后,do_work() 调用名为 nothreads() 的单线程任务。

    在面板的 "Calls"(调用)侧,请注意,除了前两个被调用方外,所有被调用方都显示大约相同的 "Attributed Total CPU"(归属总 CPU)时间量(约为 12 秒)。