From e1684fc8c0af4b97b7f8281d0ee20fa54b8eb4b5 Mon Sep 17 00:00:00 2001 From: Dan Sosedoff Date: Thu, 20 Nov 2014 20:00:45 -0600 Subject: [PATCH] Print runtime stats every minute when --debug flag is set --- main.go | 4 ++++ utils.go | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 utils.go diff --git a/main.go b/main.go index a85d6da..87ccb5b 100644 --- a/main.go +++ b/main.go @@ -203,6 +203,10 @@ func main() { gin.SetMode("release") } + if options.Debug { + go startRuntimeProfiler() + } + startServer() openPage() handleSignals() diff --git a/utils.go b/utils.go new file mode 100644 index 0000000..f62700d --- /dev/null +++ b/utils.go @@ -0,0 +1,22 @@ +package main + +import ( + "fmt" + "runtime" + "time" +) + +func startRuntimeProfiler() { + m := &runtime.MemStats{} + + for { + runtime.ReadMemStats(m) + + fmt.Println("-----------------------") + fmt.Println("Goroutines:", runtime.NumGoroutine()) + fmt.Println("Memory acquired:", m.Sys) + fmt.Println("Memory used:", m.Alloc) + + time.Sleep(time.Minute) + } +}