Go1.5正式版程序性能分析小积累,实验环境windows64

fyxichen · · 4595 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

方法一:

使用:set GODEBUG=gctrace=1 / GODEBUG=gctrace=2

直接运行可执行文件:server.exe

格式:gc  # @#s  #%:  #+...+# ms clock, #+...+# ms cpu, #->#-># MB, # MB goal, # P

GC # 表示第几次GC

@#s   表示程序开始多长时间执行的GC

 #%   表示程序开始GC时间占用的百分比(percentage of time spent in GC since program start)

#+...+#   表示GC执行时CPU阻塞时间和

#->#-># MB 表示GC开始堆大小,结束堆大小,在活跃堆大小

# MB goal 表示目标对大小

# P 表示程序运行时CPU核数 

示例 :

gc 13 @1277.835s 0%: 0+1.0+0+1.0+1.0 ms clock, 0+1.0+0+0/1.0/0+3.0 ms cpu, 0->0->0 MB, 4 MB goal, 4 P


方法二:

import _ "net/http/pprof"
go func() {
log.Println(http.ListenAndServe("localhost:6060", nil))
}()
在程序中添加以上代码.
-----------------------------------------------------------
使用下面的命令可以查看各项性能:
go tool pprof http://localhost:6060/debug/pprof/heap

查看30秒内的cpu使用:
go tool pprof http://localhost:6060/debug/pprof/profile

查看goroutime性能:
go tool pprof http://localhost:6060/debug/pprof/block

查看5秒的执行trace.
wget http://localhost:6060/debug/pprof/trace?seconds=5

在浏览器打开查看:
http://localhost:6060/debug/pprof/

https://blog.golang.org/2011/06/profiling-go-programs.html

命令:go tool pprof /mnt/Go/src/main http://localhost:6060/debug/pprof/heap
输入list可以看到详细情况.
输入web 可以在web页面查看
此外我们也可以运行go tool pprof your-executable-name --dot profile-filename > heap.gv,这样将得到一个heap.gv文件,我们在graphviz里面打开这个文件将得到一个更详细的包括调用关系在内的内存消耗图。当然,我们如果只需要一张图,也可以运行dot -Tpng heap.gv > heap.png将这个gv文件另存为png图,这样就可以像我一样,在下面展示剖析结果了。

版权声明:本文为博主原创文章,未经博主允许不得转载。


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:fyxichen

查看原文:Go1.5正式版程序性能分析小积累,实验环境windows64

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4595 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传