全局数据由收集器按名为样本包的包来记录。每个包中都包含一个数据包头、时间戳、内核的执行统计数据(如缺页和 I/O 数据)、上下文切换以及各种页面驻留(工作集和分页)统计数据。记录在样本包中的数据对程序来说是全局的,且不会转换为性能度量。记录样本包的过程称为抽样。
如果设置了有关停止的选项,而程序在 IDE 的“调试”窗口或 dbx 中因任何原因(如在断点处)停止时
选择了“调试”->“性能工具箱”->“启用收集器”,并选中“收集器”窗口中的“周期样本”复选框时
使用 dbx collector sample record 命令手动记录样本时
如果代码中包含对 collector_sample 的调用,则在调用该例程时(请参见数据收集的程序控制)
如果将 -l 选项与 collect 命令一起使用,则在传送指定信号时(请参见 collect(1) 手册页)
开始和终止收集时
使用 dbx collector pause 命令暂停收集(就在暂停之前)和使用 dbx collector resume 命令恢复收集时(就在恢复之后)
创建后续进程前后
性能工具使用记录在样本包中的数据,按时间周期将数据分组,这称为样本。您可以通过选择一组样本过滤特定事件的数据,以便只查看这些特定时间周期的信息。您也可以查看每个样本的全局数据。
性能工具不对不同种类的采样点进行区分。要利用采样点进行分析,您应只选择一种点进行记录。具体地说,如果要记录与程序结构或执行序列有关的采样点,则应关闭周期抽样,并使用在 dbx 停止进程,或将信号传送到正使用 collect 命令记录数据的进程,或调用收集器 API 函数时记录的样本。