Linux 性能分析与优化实战指南:perf / 火焰图 / Heaptrack 全流程
Linux 性能分析与优化实战指南 基于 Hical 项目的 Ubuntu 24.04 VM 环境(VirtualBox,8 CPU / 16GB RAM)。 前置条件:已完成 Hical-Linux开发环境 和 VM编译运行Hical-Benchmark流程 的环境搭建。 目录 零、工具安装 一、perf stat:硬件计数器分析 二、perf record + 火焰图:CPU 热点定位 三、Heaptrack:内存分配分析 四、缓存层次与 cache line 五、实战:Hical 性能分析全流程 六、速查卡 零、工具安装 0.1 一键安装所有性能工具 1 2 3 4 5 6 7 8 9 10 11 # perf(必须匹配内核版本) sudo apt install -y linux-tools-$(uname -r) linux-tools-generic # heaptrack(内存分配分析) sudo apt install -y heaptrack heaptrack-gui # FlameGraph(火焰图生成脚本) git clone --depth 1 https://github.com/brendangregg/FlameGraph.git ~/FlameGraph # 辅助工具 sudo apt install -y valgrind strace sysstat hwloc 0.2 内核参数调整(perf / heaptrack 权限) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # ── perf 权限 ── # 查看当前值(默认通常是 4,限制很严) cat /proc/sys/kernel/perf_event_paranoid # 临时放开(重启失效) sudo sysctl -w kernel.perf_event_paranoid=-1 sudo sysctl -w kernel.kptr_restrict=0 # ── ptrace 权限(heaptrack --pid 运行时附着需要) ── # 查看当前值(默认 1,禁止非父进程 ptrace) cat /proc/sys/kernel/yama/ptrace_scope # 临时放开(重启失效) sudo sysctl -w kernel.yama.ptrace_scope=0 # ── 永久生效(写入配置文件) ── cat << 'EOF' | sudo tee /etc/sysctl.d/99-perf.conf kernel.perf_event_paranoid = -1 kernel.kptr_restrict = 0 kernel.yama.ptrace_scope = 0 EOF sudo sysctl --system 各级别含义: ...