使用Google的性能分析工具分析Go程序的记录

邮差的信 提交于 2019-12-06 17:34:17

这是一个在ubuntu 12.0432位的AMD平台下的调试经历,仅供参考。为了使用googleGo语言性能分析工具,你需要先下载并安装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

安装时,可能遇到的一些问题:1g++没有安装;2)没有足够权限;364位平台的问题。这些都可以去百度一下解决。

在安装完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...

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!