Go语言 CPU 性能、内存分析调试方法大汇总:你要的都在这( 三 )
首先,我们先启动程序
$ ./demo4
然后再打开一个终端
go tool pprof http://localhost:10000/debug/pprof/profile?seconds=60
这里制定了生成profile文件的时间间隔60s
等待60s之后, 终端就会有结果出来,我们继续使用top来查看.
$ go tool pprof http://localhost:10000/debug/pprof/profile?seconds=60Fetching profile over HTTP from http://localhost:10000/debug/pprof/profile?seconds=60Saved profile in /home/itheima/pprof/pprof.demo4.samples.cpu.005.pb.gzFile: demo4Type: cpuTime: Mar 3, 2020 at 11:59pm (CST)Duration: 1mins, Total samples = 12.13s (20.22%)Entering interactive mode (type "help" for commands, "o" for options)(pprof) topShowing nodes accounting for 9940ms, 81.95% of 12130ms totalDropped 110 nodes (cum <= 60.65ms)Showing top 10 nodes out of 56flatflat%sum%cumcum%2350ms 19.37% 19.37%4690ms 38.66%math/rand.(*lockedSource).Int631770ms 14.59% 33.97%1770ms 14.59%sync.(*Mutex).Unlock (inline)1290ms 10.63% 44.60%6040ms 49.79%math/rand.(*Rand).Int31n1110ms9.15% 53.75%1130ms9.32%syscall.Syscall810ms6.68% 60.43%1860ms 15.33%bytes.(*Buffer).Write620ms5.11% 65.54%6660ms 54.91%math/rand.(*Rand).Intn570ms4.70% 70.24%570ms4.70%runtime.procyield500ms4.12% 74.36%9170ms 75.60%main.genSomeBytes480ms3.96% 78.32%480ms3.96%runtime.memmove440ms3.63% 81.95%440ms3.63%math/rand.(*rngSource).Uint64(pprof)
依然会得到cpu性能的结果, 我们发现这次的结果与上次30s的结果百分比类似.
可视化查看
D
我们还是通过
$ go tool pprof ./demo4 profile
进入profile文件查看,然后我们输入web指令.
$ go tool pprof ./demo4 profileFile: demo4Type: cpuTime: Mar 3, 2020 at 11:18pm (CST)Duration: 30.13s, Total samples = 6.27s (20.81%)Entering interactive mode (type "help" for commands, "o" for options)(pprof) web
这里如果报找不到graphviz工具,需要安装一下
Ubuntu安装
$sudo apt-get install graphviz
Mac安装
brew install graphviz
windows安装
下载
将graphviz安装目录下的bin文件夹添加到Path环境变量中 。 在终端输入dot -version查看是否安装成功 。
然后我们得到一个svg的可视化文件在/tmp路径下
文章插图
这样我们就能比较清晰的看到函数之间的调用关系,方块越大的表示cpu的占用越大 。
以上便是场景的一些Golang性能及内存分析大小 , 如果你希望调试你的成品程序 , 可以参考以上方法来调整并提升您的框架或者产品 。
【Go语言 CPU 性能、内存分析调试方法大汇总:你要的都在这】本文作者:刘丹冰Aceld
- 巅峰|realme巅峰之作:120Hz+陶瓷机身+5000mAh 做到了颜值与性能并存
- 华为|骁龙870和骁龙855区别都是7nm芯片吗 性能对比评测
- 器件|苏州纳米所等在高性能柔性储能器件研究中取得进展
- 设计语言|全新家族设计,三星Galaxy A32渲染图曝光
- 超强|RedmiNote9系列发布!天玑800U赋予超强5G性能
- iPhoneX|iPhone12和iPhoneX性能对决:差距比想象的大太多
- Redmi|Redmi Note 9系列发布,搭载天玑800U具备超强5G性能
- 首发|华为或首发联发科6纳米+A78新U:性能超强不输麒麟9000
- 华为|安兔兔10月安卓性能榜:华为Mate40 Pro第一 麒麟9000碾压骁龙865
- 骁龙865|5G手机中的性能怪兽,256+120W闪充,比iPhone12值得买