系统运行一段时间,随着数据量的增大会越来越卡,需要对原有的系统进行相关的优化工作,主要是相关实现的算法进行优化。下面直接使用golang提供的语言层面级别的分析包进行相关的优化工作准备,查找出来可优化的地方。

golang提供了net/http/pprof包可以用来进行性能统计,下面针对该包进行基本使用和介绍。

进行http埋点
go func(){
    log.Println(http.ListenAndServe("localhost:6060", nil))
}()
安装pprof

使用google提供的性能分析可视化工具https://github.com/google/pprof

go get -u github.com/google/pprof
使用pprof
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=60

seconds参数可以不用设置默认30s,采集完整后,会提示输出的形式,一般是svg

安装graphviz

输出svg格式时,需要使用到graphviz画图,需要先下载该软件

示例: