perf 是 Linux 内核自带的性能分析工具,广泛用于系统性能监控、热点函数定位、瓶颈分析等场景。它能够对 CPU、内存、缓存、上下文切换、中断、内核与用户空间函数等多种事件进行精准采样和分析。perf 支持对进程、线程、系统整体以及特定内核模块的性能数据采集,不仅可以帮助开发者定位应用程序的热点代码和性能瓶颈,还能深入分析内核态的运行状况,这对于优化大型服务器、数据库、中间件、内核模块等复杂系统尤为重要。perf 的优势在于它与内核紧密集成,开销小,支持的事件类型非常丰富,包括硬件事件(如指令数、缓存未命中、分支预测等)、软件事件(如上下文切换、故障页等)及自定义 tracepoint。perf 工具的操作简单,命令行参数灵活,能够生成详细的报告和可视化分析数据,便于开发人员直观理解系统的性能特征。与传统的 gprof、oprofile 等工具相比,perf 支持多核、多线程分析,适配新硬件架构和内核版本快,且社区活跃、文档丰富,是 Linux 平台上最主流、最强大的性能分析工具之一,在实际生产和开发环境中被广泛采用。本文用于描述如何在 BiscuitOS 使用 PERF, 参考如下命令:

# 切换到 BiscuitOS 项目目录
cd /BiscuitOS
# 选择开发环境,如果已经选择过可以跳过,这里与 linux 6.10 X86 为例
make linux-6.10-x86_64_defconfig
make docker
# 通过 Kbuild 选择需要部署的应用程序
make menuconfig

  [*] Package  --->
      [*] Perf Tools

# 配置完毕保存,然后进行部署
make

# 切换到实践案例所在目录
cd /BiscuitOS/output/linux-6.10-x86_64/package/BiscuitOS-perf-default
# 准备依赖工具
make prepare
# 编译实践案例
make download
# 编译并运行
make build

当 BiscuitOS 运行之后,直接使用 perf 命令就可以进行性能分析.