这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
今天的笔记主要记录一下性能调优实战 首先需要运行程序,随后在命令行输入指令,查看当前占用cpu最多的函数:
定位到问题所在,发现这里有一个for循环
对其进行注释
再次运行程序,cpu占用高的问题得到解决.
后面的步骤需要安装Graphviz,否则不会显示界面,安装地址为: www.graphviz.org/download/
安装完成后,输入指令go tool pprof -http=:8080 "http://localhost:6060/debug/pprof/heap" 对占用内存检查,发现:
选取页面view中的source选项,可以发现:
切换到alloc_space,查看申请的内存总数,发现dog中申请了大量内存
... 同样,除了刚刚检查的CPU占用、内存占用(heap)外,还要检查协程(goroutine)、锁(mutex)、阻塞(block)等 比如检查阻塞,发现cat和wolf处均存在问题
总结如下:
对性能进行检查时,不单单要看目前的内存占用量,也要查看内存申请量,有可能存在反复申请内存又释放的情况存在。有些参数需要等待程序运行一段时间再查看,这样比较明显,例如内存申请量、阻塞时间等等...
如有错误,欢迎指正