golang 程序性能优化工具介绍
2017-12-09 16:31
471 查看
golang程序性能优化
本文内容
本文旨在介绍go语言中用来分析性能的工具工具列表
go tool pprof
简介:
pprof是go自带的性能分析工具,可以分析程序的各个函数的cpu占用情况,内存占用情况等。使用方法
方法一 :基于go的功能测试函数
go的功能测试函数有两种,一种是func TestXXX(t*testing.T){},一种是BenchmarkXXX(b*testing.B){}。前者只对函数体运行一次,用来测试函数的功能。后者对函数体运行多次,并输出平均执行时间,用来进行性能测试。这两种模式都可以在命令行模式下生成测试文件。对应的命令行代码如下:go test . -cpuprofile cpu.profile -memprofile mem.profile
go test -test.bench . -cpuprofile cpu.profile -memprofile mem.profile
1.生成性能分析文件:
通过以上的命令行参数,go 的test会自动往测试函数中加入相关的代码(下面介绍的方法二就是自己往测试函数中嵌入相关生成性能分析文件的代码),用来生成分析性能的文件。最终会在可执行文件目录下产生这样三个文件:可执行文件.exe(或者linux下没有.exe),cpu.profile,mem.profile。
2.利用性能分析文件分析程序性能:
go tool pprof 可执行文件.exe cpu.profile
go tool pprof 可执行文件.exe mem.profile
进入后,可以使用top ,web等命令分析程序性能。具体可参考网络上的相关博客。
方法二:手动在main()函数中嵌入代码
func main(){ //打开文件 cpuf, err := os.OpenFile("cpu.prof", os.O_RDWR|os.O_CREATE, 0644) memf, err := os.OpenFile("mem.prof", os.O_RDWR|os.O_CREATE, 0644) pprof.StartCPUProfile(cpuf) defer pprof.StopCPUProfile() defer pprof.WriteHeapProfile(memf) yourtestfunc() }
运行可执行文件就会产生cpu.prof和mem.prof文件
go-torch
简介:
go-torch是uber开源的一个生成火焰图的工具,火焰图用来分析cpu使用情况,相对于上面的pprof生成的分析文件更加直观,代码路径:https://github.com/uber/go-torch
使用方法
使用方法参考go-torch提供的README,这里只进行一个自己实践过程中遇到的一个问题:go-torch在windows下运行时候,总是提示依赖的perl文件不是有效文件。但是在ubuntu下运行正常。友情提示
pprof可以在windows环境下运行linux生成的可执行文件和profile。比如你在linux环境下生成 yourexec cpu.profile mem.profile
把上面的文件拷贝到windows下,运行go tool pprof yourexec cpu.profile 以及
go tool pprof yourexec mem.profile是可以的。这个特性非常友好,我们可以借助windows的图形化环境更加便利地分析程序性能。
相关文章推荐
- Cocos性能优化工具的开发介绍Visual Studio内存泄漏检测工具——Visual Leak Detector
- matlab程序性能优化与混合编程技术介绍
- Oracle10g的AWR性能优化工具介绍
- Oracle10g的AWR性能优化工具介绍
- Cocos开发中性能优化工具介绍(一):Xcode中Instruments工具使用
- 笔记:Java程序性能优化 第七章 Java性能调优工具
- 十一种Web网站程序性能测试工具介绍
- gprof使用介绍-优化程序性能
- 在线的图片、js、css压缩优化工具介绍(配合小强视频 前端性能分析精要)
- gprof-Linux下程序的性能优化工具
- 程序性能分析工具gprof介绍
- 【转载】十一种Web网站程序性能测试工具介绍
- Android性能优化的工具介绍
- 6个SQL Server 2005性能优化工具介绍
- Cocos开发中性能优化工具介绍之使用Windows任务管理器
- Android性能优化之Systrace工具介绍(一) _&& Systrace生成的trace.html打开空白或者打不开的解决办法
- matlab程序性能优化与混合编程技术介绍
- Cocos开发中性能优化工具介绍之Xcode中Instruments工具使用
- Cocos开发中性能优化工具介绍之Xcode中Instruments工具使用
- 创新谈-AWR性能优化工具介绍-刘斌