为何收集时钟数据?
时钟数据可告诉您程序正在哪里执行、其状态或正在执行的模式。分析基于时钟的分析数据通常是识别程序性能问题的首要步骤。
收集器如何收集时钟数据?
时钟数据通过在固定间隔拍摄 LWP(轻量进程)的状态快照得以收集。这个过程称为分析,此间隔称为分析间隔。在每个间隔结束时,每个 LWP 的微观统计状态将与程序的调用栈、LWP ID、线程 ID 及处理器 ID 一同记录。每个分析间隔中花费的时间归属于间隔结束时执行的指令。因此派生的计时数据也实际上加以统计。
在性能分析器中可以看到哪些计时度量?
时钟数据将被转换为以下度量:
度量 | 定义 |
---|---|
用户 CPU 时间 | 在 CPU 上以用户模式运行所花费的 LWP(轻量进程)时间。 |
挂钟时间 | 在 LWP 1 中花费的 LWP 时间。这是“挂钟时间” |
总 LWP 时间 | 所有 LWP 时间的合计。 |
系统 CPU 时间 | 以内核模式或者在俘获状态下运行所花费的 LWP 时间。 |
等待 CPU 时间 | 等待 CPU 所花费的 LWP 时间。 |
用户锁定时间 | 等待锁定所花费的 LWP 时间。 |
文本页错误时间 | 等待文本页所花费的 LWP 时间。 |
数据页错误时间 | 等待数据页所花费的 LWP 时间。 |
其它等待时间 | 等待锁定或内核页面所花费的 LWP 时间,或休眠或停止所花费的时间。 |
除挂钟时间外,还将计算各 LWP 中所有度量的总和。此处定义的挂钟时间对于多程序多数据 (MPMD) 程序没有意义。如果缺省的线程库在 SolarisTM 7 和 8 操作环境中使用,则用户锁定时间将在其它等待时间中进行累计。
时钟数据收集的限制是什么?
您无法对使用分析计时器的程序进行基于时钟的分析。收集器将截取对设置分析时钟参数的 setitimer(3) 的调用,并防止其它参数使用它们。
另请参见 | |
---|---|
选择分析间隔值 收集性能数据 在正运行的进程上收集性能数据 |