This question already has an answer here:
golang tool pprof not working properly - same broken output regardless of profiling target
(1个答案)
3年前关闭。
编辑:当我将可执行文件添加到pprof调用时工作
我正在尝试使用https://github.com/pkg/profile的探查器对一个简单程序进行探查:并使用pprof工具。
这些示例显示了一张漂亮的表,其中包含所有已调用的函数以及每个函数花费了多长时间,但是我只看到100%的使用几秒钟,没有更多信息。
我该怎么做才能使其输出功能?它与完成代码后输出的“cpu性能分析已禁用”行有关系吗?
这就是我用来生成输出的内容:
重新运行
现在,它使用了
我正在使用
(1个答案)
3年前关闭。
编辑:当我将可执行文件添加到pprof调用时工作
我正在尝试使用https://github.com/pkg/profile的探查器对一个简单程序进行探查:并使用pprof工具。
package main
import "github.com/pkg/profile"
func main() {
defer profile.Start().Stop()
t1()
t2()
}
func t1() {
for i := 0; i < 9000000000; i++ {
x := i * 2
x += x
}
}
func t2() {
for i := 0; i < 1000000000; i++ {
x := i * 2
x += x
}
}
这些示例显示了一张漂亮的表,其中包含所有已调用的函数以及每个函数花费了多长时间,但是我只看到100%的使用几秒钟,没有更多信息。
我该怎么做才能使其输出功能?它与完成代码后输出的“cpu性能分析已禁用”行有关系吗?
这就是我用来生成输出的内容:
./test
2016/12/16 11:04:39 profile: cpu profiling enabled, /tmp/profile176930291/cpu.pprof
2016/12/16 11:04:44 profile: cpu profiling disabled, /tmp/profile176930291/cpu.pprof
martin@martin-laptop:~/work/bin$ go tool pprof -text /tmp/profile176930291/cpu.pprof
4.90s of 4.90s total ( 100%)
flat flat% sum% cum cum%
4.90s 100% 100% 4.90s 100%
最佳答案
您是否遇到类似以下错误:
tmp的本地符号失败:打开/ tmp / go-build594370835 / command-line-arguments / _obj / exe / tmp:没有这样的文件或目录
如果是这样的话;在源目录中,尝试:
go build tmp.go
重新运行
go tool pprof -text ...
会导致:go tool pprof -text /tmp/profile668503934/cpu.pprof
5040ms of 5040ms total ( 100%)
flat flat% sum% cum cum%
4560ms 90.48% 90.48% 4560ms 90.48% main.t1
480ms 9.52% 100% 480ms 9.52% main.t2
0 0% 100% 5040ms 100% main.main
0 0% 100% 5040ms 100% runtime.goexit
0 0% 100% 5040ms 100% runtime.main
现在,它使用了
./tmp
二进制文件中包含的符号。我正在使用
go version go1.7.3 linux/amd64
10-07 21:08