dran0703 2016-04-14 19:29
浏览 91
已采纳

pprof堆配置文件中的glob.func

When doing a heap profile using go tool pprof, I see some entries like github.com/anacrolix/utp.glob.func1. This doesn't correspond to any named function I can see, I assume it's a closure. What does glob refer to? How can I associate names like this to the appropriate function?enter image description here

  • 写回答

1条回答 默认 最新

  • douxiezha9319 2016-04-14 20:57
    关注

    glob refers to global environment, func1 means anonymous function. So it should refer to some global anonymous function. Check this example and its panic information:

    Example:

    package main
    
    import (
        "fmt"
    )
    
    var (
        p = func() string {
            panic("a")
    
            return "asdf"
        }()
    )
    
    func main() {
        fmt.Println(p)
    }
    

    Panic information:

    panic: a
    
    goroutine 1 [running]:
    panic(0x128360, 0x1040a120)
        /usr/local/go/src/runtime/panic.go:464 +0x700
    main.glob.func1(0x0, 0x0)
        /tmp/sandbox715198144/main.go:9 +0x80
    main.init()
        /tmp/sandbox715198144/main.go:12 +0xa0
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部