性能之巅 trace 视频封面
技术 · 性能观察 28:46
1080P

性能之巅trace:用一条时间线读懂程序的真实开销

播放 18.6万弹幕 2,418发布于 2026-10-28

视频简介

一次线上接口变慢,常常不是某一行代码突然变坏,而是请求经过的许多环节一起拉长了等待时间。本期从性能分析里的 trace 入手,沿着时间轴拆开一次请求:它何时进入线程、在哪里等待、又是怎样把 CPU 时间花在真正的工作上。

我们会用一组容易复现的场景,讲清楚火焰图与调用链各自适合回答什么问题,并演示如何从调度、锁竞争、磁盘与网络 I/O 中找线索。最后把采集成本、采样误差和结果验证放回排查流程里,帮助你从“感觉变慢”走到有证据的性能结论。

本期要点 / 时间轴

00:00从一次接口延迟告警开始,明确要回答的问题
04:18trace、采样与调用链:数据分别从哪里来
09:42读懂时间线上的线程状态与等待区间
15:06把火焰图和具体请求路径对应起来
21:33识别锁竞争、I/O 阻塞和调度延迟
26:10复测、对照与采集开销的边界

同系列:性能排查现场

评论 共 1,276 条

半夜还在看日志

以前只盯着 CPU 火焰图,这次才发现请求大半时间都在等锁,时间线一摊开真的清楚很多。

11-04 23:18128
木木的后端笔记

把采样误差单独讲出来很有必要,之前拿一次短采样就下结论,后来复测完全不是同一个热点。

11-04 20:5276
北岸的咖啡机

时间戳和线程状态对上之后,之前很玄学的“偶发卡顿”终于有了能追下去的方向。

11-04 18:3651
小周同学

讲得挺接地气,尤其是先提出假设再选工具这段,排查时少走不少弯路。

11-04 16:0743
路由器不想加班

网络等待在图上出现的那一段看得我恍然大悟,原来服务端 CPU 低不等于请求没有问题。

11-04 14:2132
一颗小螺丝

想问下这种线程等待很短但频率很高的情况,通常需要拉长采集时间还是提高采样频率?

11-04 12:4919
阿栈UP 主回复

可以先保证覆盖到问题发生的完整周期,再根据目标事件调整采样;短而密的等待也要结合总次数看。

11-04 11:0386
风吹过代码仓

收藏了,最近正好要给一个旧服务做性能回顾,按视频里的步骤先画出请求路径。

11-04 09:3224