Go 性能调优(pprof)

Go/pprof 性能调优

总结:

性能调优的两个方向:CPU 和 内存

工具:`go tool pprof cpu.pprof``go tool pprof mem.pprof`

 图:调用图 和 火焰图

1.Go语言内置了获取程序的运行数据的工具,包括以下两个标准库:

1.runtime/pprof : 采集工具型应用运行数据进行分析

2.net/http/pprof:  采集服务型应用运行时数据进行分析

2.性能调优原理: pprof 开启后,每隔一段时间(10ms)就会收集下当前的堆栈信息,获取各个函数占用的CPU以及内存资源;最后通过这个采集数据进行分析,形成一个性能分析报告。

3.注意:我们只应该在性能测试的时候才在代码中引用pprof.

注:如果你使用的是gin框架推荐用
github.com/DeanThompson/ginpprof

4.性能分析
a.go tool pprof 命令
[learnstuday\day13\11pprof_demo]

1. pprof_demo.exe -cpu=true
2. go tool pprof [binary] [source]

b.图形化
1.graphviz:
go tool pprof [binary] [source]进入,直接输入web,通过浏览器svg图的方式查看程序中详细的CPU占用情况。

2.火焰图(Flame Graph)和go-torch
火焰图使用go-torch工具(uber开源的工具),可以直接读取 golang profiling 数据,并生成一个火焰图的svg文件

注:要生成火焰图,需要事先安装 FlameGraph工具,这个工具的安装很简单(需要perl环境支持),只要把对应的可执行文件加入到环境变量中即可。


转载:https://www.liwenzhou.com/posts/Go/performance_optimisation/

你可能感兴趣的:(Go 性能调优(pprof))