You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang pprof生成火焰图的调用关系异常原因排查

pprof火焰图出现未调用函数的异常分析问题

我用pprof采集CubeFS的cfs-server进程CPU profile,执行以下命令生成火焰图:

go tool pprof http://localhost:16220/debug/pprof/profile\?seconds\=1300 # 生成profile文件 ~/pprof/cpu.001.pb.gz
go tool pprof -http :11111 ~/pprof/cpu.001.pb.gz # 启动交互式网页
wget -O flamegraph.htm http://localhost:11111/ui/flamegraph # 下载火焰图

生成的火焰图中,第二行中间的proto.(*UserPolicy).SetPerm函数下方,出现了httputil.(*ReverseProxy).getErrorHandler、httputil.(*ReverseProxy).ServeHTTP等该函数并未调用的函数。

proto.(*UserPolicy).SetPerm的源码如下:

func (policy *UserPolicy) SetPerm(volume string, perm Permission) {
    policy.mu.Lock()
    defer policy.mu.Unlock()
    policy.AuthorizedVols[volume] = []string{perm.String()}
}

// Permission类型及String方法定义
type Permission string

func (p Permission) String() string {
    return string(p)
}

该函数逻辑非常简单,并未调用火焰图中显示的那些函数,想知道这种调用关系异常是真的存在错误,还是我对火焰图的理解有误区,以及该情况的产生原因。

内容的提问来源于stack exchange,提问作者Yu-Ang Cao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 08:27:10