GO语言实现实时监控内存占用

//GO语言实现实时监控内存占用
func main() {
    app, err := libbootstrap.Setup()
    if err != nil {
        log.Fatalln(err)
    }
    
    // 初始化本服务必须要初始化的全局内容
    bootstrap.ServerMustInit(app.Ctx)
    // 注册接口路由
    router.InitRouters(app.Router)
    go func() {
        var memStats runtime.MemStats
        
        for {
        
            runtime.ReadMemStats(&memStats)
            fmt.Printf("内存占用: %f M\n", float64(memStats.HeapSys)/(1024*1024))
            runtime.ReadMemStats(&memStats)
            fmt.Printf("Alloc: %d, TotalAlloc: %d, Sys: %d, NumGC: %d\n", memStats.Alloc/(1024*1024), memStats.TotalAlloc/(1024*1024), memStats.Sys/(1024*1024), memStats.NumGC)
            time.Sleep(1 * time.Second)
            
            // 可以根据实际情况调整监控的间隔时间
            time.Sleep(1 * time.Second)
        }
    }()
    app.Start()
}

GO语言实现实时监控内存占用执行效果图

GO语言实现实时监控内存占用

最后编辑于:2024/04/10作者: 牛逼PHP

发表评论