目录
火焰图是一种可视化工具,用于展示程序的调用栈信息及每个函数占用的时间比例。它最初由 Brendan Gregg 开发,广泛应用于性能优化领域。火焰图将调用栈从上到下排列,每层代表一个函数调用,宽度表示该函数占用的时间或样本数量,颜色通常没有特定含义,但可以通过配置来区分不同类型的函数。 火焰图结合
perf
是一个强大的 Linux 性能分析工具,它可以帮助开发者和系统管理员收集关于程序运行时性能的详细信息。perf
巅峰于 Linux 内核 2.6.31 版本中引入,它提供了一系列子命令来执行不同的性能监控任务,比如统计性能计数器、采样程序执行、跟踪内核事件等。perf
的主要功能包括:
使用
perf
进行性能剖析的基本步骤:
perf
(通常作为 linux-tools-common
包的一部分)。perf record
命令记录性能数据。perf report
命令查看和分析记录的数据。perf top
实时查看系统的热点函数。
火焰图
火焰图的特点:
如何生成火焰图:
perf
或其他工具(如 gprof, dtrace, SystemTap 等)采集性能数据。perf
使用,可以非常有效地帮助开发者理解程序的执行过程,识别性能瓶颈,进而优化程序性能。