pprof堆配置文件中的glob.func

时间:2016-04-15 03:29:34

标签: go pprof

使用go tool pprof执行堆配置文件时,我会看到一些条目,例如github.com/anacrolix/utp.glob.func1。这与我能看到的任何命名函数都不对应,我认为它是一个闭包。 glob指的是什么?如何将这样的名称与相应的函数相关联?enter image description here

1 个答案:

答案 0 :(得分:2)

glob指的是全局环境,func1表示匿名函数。所以它应该引用一些全局匿名函数。检查this example及其恐慌信息:

示例:

package main

import (
    "fmt"
)

var (
    p = func() string {
        panic("a")

        return "asdf"
    }()
)

func main() {
    fmt.Println(p)
}

恐慌信息:

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