c - 如何解释性能脚本输出
问题描述
我正在尝试创建一个类似于flamegraph的工具,但使用不同的前端。我在理解 perf-script 的输出时遇到了一些问题。
首先,我用 记录perf
数据perf record -a -g -o /my/output/file.data
,如果我理解正确的perf
工作原理,这将每隔一定时间采样一次,然后查看当时 IP 的位置。
然后我用 生成 perf-script 输出(我打算解析的那个)perf script -i /my/input/file.data --fields trace:comm,pid,tid,cpu,time,event,ip,sym,dso,trace
,我得到以下输出:
...
swapper 0 [000] 22925.999132: 68882 cycles:
ffffffffa9311275 rcu_prepare_for_idle+0x5 ([kernel.kallsyms])
ffffffffa93131be rcu_irq_exit+0x6e ([kernel.kallsyms])
ffffffffa9c01d4f call_function_single_interrupt+0xf ([kernel.kallsyms])
ffffffffa99060d4 cpuidle_enter_state+0xc4 ([kernel.kallsyms])
ffffffffa99064d9 cpuidle_enter+0x29 ([kernel.kallsyms])
ffffffffa92c431e do_idle+0x1de ([kernel.kallsyms])
ffffffffa92c4559 cpu_startup_entry+0x19 ([kernel.kallsyms])
ffffffffaa91617b start_kernel+0x58c ([kernel.kallsyms])
ffffffffa92000d4 secondary_startup_64+0xa4 ([kernel.kallsyms])
...
我不明白时间 ( 22925.999132
) 是什么意思。
我也不明白循环计数器的含义,一开始我以为是函数执行了多长时间,但如果只是对IP进行采样,那么拥有这些信息是没有意义的。
解决方案
推荐阅读
- amazon-web-services - 有人可以在本地(使用私有地址)连接/发现我的 AWS 服务/实例吗?
- python - 词干地理词
- batch-file - 在打开 Notepad++ 的文件夹中的 Notepad++ 中打开批处理文件
- php - 如何仅列出一个月中添加和删除特定数据的日期?
- centos - 屏幕分辨率 CentOS 8 - VMware
- javascript - Angular RouterReuseStrategy,如何仅从特定路由重用?
- javascript - Firebase 云功能
- matlab - 代码错误,一种计算sqrt的方法(a)
- java - AMQP 中的通道和链接有什么区别?
- unity3d - Unity World Anchors 如何在 HoloLens 上工作?