我的应用程序内存泄漏,这经常导致应用程序崩溃。因此,我开始使用pprof对应用程序进行性能分析,但是我只能在点击url的情况下才能获取配置文件。有什么方法可以在某些时间间隔内找到配置文件,以便我可以分析应用程序的状况吗?

最佳答案

我希望对pprof转储有一个很酷的异常标志(如核心转储),但找不到任何东西。在此之前,我想到了两个选择:

  • 外部:使用cron或其他一些驱动程序定期 curl pprof
  • 内部:从程序
  • 内部定期编写pprof

    外部
    $ curl http://localhost:8080/debug/pprof/heap > heap.0.pprof
    

    内部
    ticker := time.NewTicker(1 * time.Hour)
    go func() {
        for {
           select {
            case <- ticker.C:
    if err := pprof.WriteHeapProfile(f); err != nil {
                log.Fatal("could not write memory profile: ", err)
            }
    
           }
        }
    }()
    

    The external curl is a strategy I often take in order to get heap profiles at regular intervals in order to track/compare memory growth

    关于go - 如何连续剖析我的go应用程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56826026/

    10-10 23:55