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