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