我试图简要介绍一下golang应用程序,但我不能有工作,我按照这两个教程:无法获得golang pprof工作
- http://blog.golang.org/profiling-go-programs
- http://saml.rilspace.org/profiling-and-creating-call-graphs-for-go-programs-with-go-tool-pprof
两者都说在向应用程序添加一些代码行之后,您必须执行您的应用程序,我这样做了,并且在屏幕上收到以下消息:
2015年6月16日12点04分00秒的个人资料:CPU启用分析 /var/folders/kg/4fxym1sn0bx02zl_2sdbmrhr9wjvqt/T/profile680799962/cpu.pprof
所以,据我了解,分析是正在执行,发送信息到文件。
但是,当我看到文件大小时,在我测试的任何程序中,它始终是64字节。
当我尝试打开与pprof的cpu.pprof文件,我执行“TOP10”的命令,我看没有什么是文件中:
(“./fact”是我的应用程序)
去工具pprof ./fact /var/folders/kg/4fxym1sn0bx02zl_2sdbmrhr9wjvqt/T/profile680799962/cpu.pprof
TOP10 - >
(pprof)TOP10 0 0总的(0 %) flat flat%sum%cum cum%
所以,这就好像我在分析时没有任何事情发生。
我已经在mac(本例)和ubuntu中用三种不同的程序对它进行了测试。
你知道我做错了吗?
然后示例程序很简单,这是代码(是我从网上取一个非常简单的阶乘程序):
import "fmt"
import "github.com/davecheney/profile"
func fact(n int) int {
if n == 0 {
return 1
}
return n * fact(n-1)
}
func main() {
defer profile.Start(profile.CPUProfile).Stop()
fmt.Println(fact(30))
}
感谢, 费尔
首先,您使用的操作系统是什么?其次,'pprof'是一个“采样分析器”,你没有做任何可以抽样的事情。你的应用程序需要不断地执行指令以获得足够的时间来累积足够的样本(使用net/http/pprof时,默认样本时间为30秒) – JimB
我正在使用OSX 10.10.2(Yosemite)。我现在正在尝试在长时间使用该配置文件工作,现在我看到该文件有更多的信息:)谢谢! – Fersca
您还需要阅读以下内容:http://godoc.org/rsc.io/pprof_mac_fix – JimB