golang学习笔记-pprof性能分析2 - Go语言中文社区

golang学习笔记-pprof性能分析2


前言

golang自带非常强大的性能分析工具,它可以在Go程序的运行中以精致的细节显示所有运行时事件,今天我们就了解一下go tool trace的强大之处。

一、概述

go tool trace 显示了非常之多的信息,为了简单起见,我们先概括的看一下他显示了些什么,下面是我生成的所有trace目录,具体的如图上所示,我们逐个分析。
在这里插入图片描述

二、详细

1、view trace
打开一个view trace,过程可能需要一点时间,稍作等待,打开之后看到的画面如下,包含一些注解:
在这里插入图片描述
Heap:查看堆的使用情况,可以查看任何时刻的堆情况。下一次GC的时间,当前使用的内存情况。如下:
在这里插入图片描述
Threads:当前的线程使用情况,如下图:
在这里插入图片描述
在这里插入图片描述
Proc x:当前“核”的groutines执行情况(具体内容还没看懂什么鬼
在这里插入图片描述

最右侧的统计信息:
在这里插入图片描述
2、Goroutine analysis
打开Goroutine analysis看到的所有的goroutines和对应所在的模块,N表示当前模块(函数)启动的goroutines的数目,如下图:
在这里插入图片描述
随机点开一个,CmpServer/MyKafka.(*MyProducer).run 查看具体的信息:
在这里插入图片描述
3、Network blocking profile
4、Synchronization blocking profile
5、Syscall blocking profile
6、Scheduler latency profile
7、User-defined tasks
8、User-defined regions
3~8不逐个展开(还不明白流程图具体代表的什么意思)

待续…

参考:
https://blog.csdn.net/csdnnews/article/details/81009432
https://making.pusher.com/go-tool-trace/
https://about.sourcegraph.com/go/an-introduction-to-go-tool-trace-rhys-hiltner

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_30549833/article/details/89381790
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-13 23:50:35
  • 阅读 ( 1206 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢