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 会打开可视化的函数调用情况: