用途:在 Linux 上对程序进行堆内存分配分析,本技能引导代理完成轨迹记录、结果解读、泄漏与热点定位、以及两次运行对比。
主要能力:记录堆分配轨迹生成 heaptrack.<prog>.<pid>.zst 文件;用 heaptrack_print 做文本分析(含总泄漏内存、堆峰值占用、临时分配、分配函数调用次数、热点与泄漏点);用 heaptrack_gui 做图形分析;支持按阈值过滤、输出火焰图数据、对比两次运行;可附加到运行中的进程(heaptrack --pid 12345)。
使用方式:安装可选 apt-get install heaptrack heaptrack-gui、dnf install heaptrack、pacman -S heaptrack,或从源码用 cmake 构建。基本用法为 heaptrack ./myapp arg1 arg2,分析用 heaptrack_print heaptrack.myapp.12345.zst;建议以 RelWithDebInfo 等带调试符号的方式构建以获得可读回溯。分析选项包括 -p 10 取前 10 个热点、-l 仅显示泄漏、--min-cost 设置开销阈值、-s 输出简短摘要。Rust 程序需使用系统分配器并可用 release-with-debug 配置构建。
适用场景:C++ 等程序内存占用过高、查找分配热点、定位内存泄漏、比较两个版本内存使用。
限制:仅支持 Linux;相比 Valgrind massif 开销约 2-3 倍(massif 约 20 倍);相比 massif 缺少跨平台可移植性,但无需重新编译。需要平台可移植或详细快照对比时可用 massif。具体安装来源与更多参考文档以资料引用为准,未提供的信息暂未提供。