文章插图
三、PProf 可视化界面这是令人期待的一小节 。在这之前,我们需要简单的编写好测试用例来跑一下
编写测试用例(1)新建 data/d_test.go,文件内容:
文章插图
(2)执行测试用例
文章插图
-memprofile 也可以了解一下
启动 PProf 可视化界面方法一:
$ go tool pprof -http=:8080 cpu.prof方法二:
$ go tool pprof cpu.prof $ (pprof) web如果出现 Could not execute dot; may need to install graphviz.,就是提示你要安装 graphviz 了 (请右拐谷歌)
查看 PProf 可视化界面(1)Top
文章插图
(2)Graph
文章插图
框越大,线越粗代表它占用的时间越大哦
(3)Peek
文章插图
(4)Source
文章插图
通过 PProf 的可视化界面,我们能够更方便、更直观的看到 Go 应用程序的调用链、使用情况等,并且在 View 菜单栏中,还支持如上多种方式的切换
你想想,在烦恼不知道什么问题的时候,能用这些辅助工具来检测问题,是不是瞬间效率翻倍了呢
四、PProf 火焰图另一种可视化数据的方法是火焰图,需手动安装原生 PProf 工具:
文章插图
(3) 查看 PProf 可视化界面
打开 PProf 的可视化界面时,你会明显发现比官方工具链的 PProf 精致一些,并且多了 Flame Graph(火焰图)
它就是本次的目标之一,它的最大优点是动态的 。调用顺序由上到下(A -> B -> C -> D),每一块代表一个函数,越大代表占用 CPU 的时间更长 。同时它也支持点击块深入进行分析!
文章插图
总结在本章节,粗略地介绍了 Go 的性能利器 PProf 。在特定的场景中,PProf 给定位、剖析问题带了极大的帮助
希望本文对你有所帮助,另外建议能够自己实际操作一遍,最好是可以深入琢磨一下,内含大量的用法、知识点
思考题你很优秀的看到了最后,那么有两道简单的思考题,希望拓展你的思路
(1)flat 一定大于 cum 吗,为什么?什么场景下 cum 会比 flat 大?
(2)本章节的 demo 代码,有什么性能问题?怎么解决它?
本文作者:煎鱼,原创授权发布
【Golang 大杀器之性能剖析 PProf】
推荐阅读
- 泽州铁器,重塑中国铁器之美
- 大唐茶叶储藏容器之
- 从成型技艺欣赏紫砂方器之美
- 瓷器之王㎡㎡骨瓷
- 历代茶器之美 百年光阴亦眷恋茶香
- 华为拿出存储“大杀器”:像太平洋一样大的容量专用硬件你见过没
- 美国变态杀手排名 美国影史四大杀手
- php加速器之opcache
- Golang模块代理goproxy.io源码研读
- Go程序配置文件找不到怎么办?