runtime.MemStats を使うと現時点でのメモリの使用状況などを確認できます。
とりあえず、以下のようなコードを埋めるとAlloc (割り当てられたヒープオブジェクトのバイト数) とNumGC (GCの回数) を確認できます。ついでに期間中の最大のAllocも確認しています。
その他必要なデータはMemStatsのドキュメントを読みながら適宜追加すること。
package main import ( "log" "runtime" "time" ) func main() { tick := time.NewTicker(2 * time.Second) defer tick.Stop() go func() { var maxAlloc uint64 for range tick.C { var s runtime.MemStats runtime.ReadMemStats(&s) toMB := func(v uint64) uint64 { return v / (1024 * 1024) } alloc := s.Alloc if maxAlloc < alloc { maxAlloc = alloc } log.Println("===============================") log.Printf("Alloc: %d\n", toMB(alloc)) log.Printf("MaxAlloc: %d\n", toMB(maxAlloc)) log.Printf("NumGC: %d\n", s.NumGC) log.Println("===============================") } }() someMemoryBoundFunction() }