Callgrind(指令级分析):
慢 20-30x,但精确到每条指令
告诉你"哪个函数指令数最多、Cache Miss 最高"
可视化工具:KCachegrind
Massif(堆内存分析):
找到"哪个函数分配了最多内存"
需要优化内存使用时使用
Helgrind / DRD(数据竞争检测):
不需要重编译的 TSan 替代方案
适合分析第三方库或已编译好的二进制
perf vs Callgrind 怎么选?
粗略定位热点 → perf record(快,但可能漏掉低频执行的热路径)
精确优化 → Callgrind(慢,但告诉你完整信息)
验证优化效果 → perf stat(只需要对比 IPC 和 Cache Miss 就行了)