perf timechart:时间线可视化
更新时间:2026-10-01。需要向团队“一图说明并行程序为什么没跑满”时,timechart 很有说服力。
一、生成
bash
perf timechart record -- ./prog
perf timechart # 输出 output.svg图中按 CPU 显示运行任务与空闲,任务有运行/睡眠/等待状态,并标出唤醒、IO 等事件。
二、看出什么
- 大片空闲 + 任务串行唤醒:存在依赖关键路径,并行度不足。
- 各 CPU 忙闲不均:负载划分问题。
- 频繁短运行/睡眠:调度/IO 粒度过细。

三、常见坑
- 采样窗口过长图太密。
- 把可视化当定量依据(仍要 stat/计数)。
小结
timechart 用 SVG 呈现 CPU/任务/唤醒时间线,直观暴露串行依赖与不均衡,定量再回 perf。下一篇 perf 内存排序与屏障分析。
总结
perf timechart 把调度和电源事件转成 SVG 时间线:逐 CPU 显示运行任务与空闲、任务的运行/睡眠/等待状态以及唤醒、IO 关系,一图即可向团队说明“并行程序为什么没跑满”——大片空闲加任务串行唤醒指向依赖关键路径/并行度不足,各 CPU 忙闲不均指向负载划分问题,频繁短运行/睡眠指向调度或 IO 粒度过细;它是直观的定性展示而非定量依据,采样窗口过长会太密,精确结论仍须回到 stat/计数。