这是一个在ubuntu 12.04,32位的AMD平台下的调试经历,仅供参考。为了使用google的Go语言性能分析工具,你需要先下载并安装google的性能分析工具:gperftools。
下载地址:
http://code.google.com/p/gperftools/downloads/list
详细的安装gperftools 可以百度一下关键字‘使用 TCMalloc优化 Nginx’。
下面只列出简单的安装过程:
在控制台窗口里,以root的身份操作:
wgethttp://gperftools.googlecode.com/files/gperftools-2.0.tar.gz
tar -zxvf gperftools-2.0.tar.gz
cd gperftools-2.0
./configure --prefix=/usr/local
make
make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig
安装时,可能遇到的一些问题:1)g++没有安装;2)没有足够权限;3)64位平台的问题。这些都可以去百度一下解决。
在安装完gperftools后,就可以在Go程序里面使用了。使用的方法有好几种,最直接的就是在Go程序里面写代码生成分析文件.prof。例如,文件test_prime.go里面
func main(){
//创建文件
f, _ := os.Create("primefinder.prof")
//开始记录
pprof.StartCPUProfile(f)
//在程序结束的时候停止记录.
defer pprof.StopCPUProfile()
}
接下来,运行go程序生成相关达.prof后缀文件。例如,test_prime生成来一个primefinder.prof分析文件。
然后,运行pprof来分析对应达.prof文件。例如,
pprof test_prime primefinder.prof
这样,就会进入pprof的一个交互程序。
Using local file test_prime.
Using local file primefinder.prof.
Welcome to pprof! For help, type 'help'.
(pprof)
查看top20
(pprof) top20
Total: 120 samples
119 99.2% 99.2% 120 100.0% main.IsPrime
1 0.8% 100.0% 1 0.8% math.Sqrt
0 0.0% 100.0% 120 100.0% main.CountPrimeInrange
0 0.0% 100.0% 120 100.0% schedunlock
为了以图形的方式展示分析结果,需要安装一个graphviz工具。安装过程如下:
wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.26.0.tar.gz
tar zxf graphviz-2.26.0.tar.gz
cd graphviz-2.26.0/
./configure
make
sudo make install
在安装完成后,就可以在pprof工具里面使用web命令来观看图形化的分析结果。例如,
pprof --web test_prime primefinder.prof
将把分析结果以图形化的方式在web浏览器中打开。
to be continued...