GO学习笔记(9)-性能监控 go-pprof

2021-07-04  本文已影响0人  卡门001

介绍

代码的性能监控,包含: net/http/pprofruntime/pprof,其中net/http/pprof可用于 web服务器监控服务进程的监听。如果要监听应用程序,则需要用到runtime/pprof

服务监听

引入net/http/pprof,一般通过启动goroutine启端口进行监听

go func() {
      log.Println(http.ListenAndServe("localhost:6060", nil)) 
}()
http://localhost:port/debug/pprof/

也可以通过命令行方式

go tool pprof http://localhost/debug/pprof/profile

应用程序监听

应用程序,比如计算fabonacci数列 监听,需要用runtime/pprof

var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")

func main() {
    flag.Parse()
    if *cpuprofile != "" {
        f, err := os.Create(*cpuprofile)
        if err != nil {
            log.Fatal(err)
        }
        pprof.StartCPUProfile(f)
        defer pprof.StopCPUProfile()
    }
//cpu的信旋记录到XXX.prof
myproject --cpuprofile=fabonacci.prof
上一篇下一篇

猜你喜欢

热点阅读