对于golang的工程,如果对它的性能不满意,最好的办法就是使用pprof工具,针对内存和cpu使用情况,来对函数进行优化,优化主要有删除冗余的局部变量,减少外部第三方lib的调用次数等等,需要具体问题具体分析。
pprof这个工具使用方法很简单,首先在你的代码下新增下面的文件
pkg/monitor/monitor.go 内容如下。
package monitor
import(
_ "net/http/pprof"
"net/http"
log "github.com/sirupsen/logrus"
)
func Init(){
go func(){
log.Fatal(http.ListenAndServe(":8001", nil))
}()
}
之后需要在main.go中增加启动pprof服务的调用,这里使用携程是为了避免阻塞主进程。
monitor.Init()
完成build和deploy之后,就可以通过访问8001端口来获取pprof的具体数据了。