golang利用pprof与go-torch如何做性能分析
软件开发过程中,项目上线并不是终点。上线后,还要对程序的取样分析运行情况,并重构现有的功能,让程序执行更高效更稳写。golang的工具包内自带pprof功能,使找出程序中占内存和CPU较多的部分功能方便了不少。加上uber的火焰图,可视化显示,让我们在分析程序时更简单明了。默认每发生一次阻塞事件时取样一次。/debug/pprof/goroutines:活跃Goroutine的信息的记录。/debug/pprof/threadcreate: 系统线程创建情况的记录。也就是说每秒取样100次,即每10毫秒会取样一次。实际上,这里所说的对CPU使用情况的取样就是对当前的Goroutine的堆栈上的程序计数器的取样。handlerData方法占用的cpu时间过长。使用命令会在当前目录下生成cpu.svg文件,使用浏览器打开如果你的项目不是web服务,比如是rpc服务等,就要使用runtime/pprof。
用户评论