golang程序的CPU及内存使用情况性能分析
1.runtime.MemStats查看内存占用情况
Alloc:golang语言框架堆空间分配的字节数
HeapIdle:申请但是未分配的堆内存或者回收了的堆内存(空闲)字节数
HeapReleased:返回给OS的堆内存
HeapInuse uint64:正在使用的堆内存字节数
GCSys uint64:垃圾回收标记元信息使用的内存
Sys uint64:服务现在系统使用的内存
2. pprof分析golang内存
启动服务,在浏览器输入:http://localhost:10000/debug/pprof/heap?debug=1 进入pprof
3. golang程序cpu性能分析
在浏览器输入:http://localhost:10000/debug/pprof/ ,进入pprof调试页:
点击profile会下载相应的profile文件,执行 go tool pprof (可执行的二进制文件) profile 进入profile:
使用top指令即可查看当前profile文件中的cpu占用率:
安装Graphviz后,在pprof输入 web 会打开可视化的函数调用情况: