性能调优实战 | 青训营笔记

75 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

今天的笔记主要记录一下性能调优实战 首先需要运行程序,随后在命令行输入指令,查看当前占用cpu最多的函数:

image.png 定位到问题所在,发现这里有一个for循环 image.png 对其进行注释

image.png

再次运行程序,cpu占用高的问题得到解决.

image.png

image.png

后面的步骤需要安装Graphviz,否则不会显示界面,安装地址为: www.graphviz.org/download/

安装完成后,输入指令go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/heap" 对占用内存检查,发现:

image.png

选取页面view中的source选项,可以发现:

image.png

image.png

切换到alloc_space,查看申请的内存总数,发现dog中申请了大量内存

image.png

... 同样,除了刚刚检查的CPU占用、内存占用(heap)外,还要检查协程(goroutine)、锁(mutex)、阻塞(block)等 比如检查阻塞,发现cat和wolf处均存在问题

image.png

总结如下:

image.png

对性能进行检查时,不单单要看目前的内存占用量,也要查看内存申请量,有可能存在反复申请内存又释放的情况存在。有些参数需要等待程序运行一段时间再查看,这样比较明显,例如内存申请量、阻塞时间等等...

如有错误,欢迎指正