对于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的具体数据了。