Hi all, I'm currently having a lot of trouble debugging the memory usage of the program I'm working on. This program, everyday at a given time, reloads a bunch of data (that's been updated by another program) into its memory. The following function:
// PrintMemUsage outputs the current, total and OS memory being used. As well as the number // of garage collection cycles completed. func PrintMemUsage() { var m runtime.MemStats runtime.ReadMemStats(&m) // For info on each, see: https://golang.org/pkg/runtime/#MemStats fmt.Printf("Alloc = %v MiB", bToMb(m.Alloc)) fmt.Printf("TotalAlloc = %v MiB", bToMb(m.TotalAlloc)) fmt.Printf("Sys = %v MiB", bToMb(m.Sys)) fmt.Printf("NumGC = %v\n", m.NumGC) } Outputs this: Alloc = 103861 MiB TotalAlloc = 6634355 MiB Sys = 232088 MiB NumGC = 3822 The program reloads its data everyday but everyday the few references that existed for the given data is overwritten by the new one. And indeed the "Alloc" line above seems to stay around 100GB. Where I don't understand what happens is that in the htop line of the program, the memory that is used by the program keeps growing as the days pass, and when it reaches close to 100% percent of the host's memory, the program will crash eventually. Any idea that would help me debug this memory inconstency between memstats and htop is welcome. I can also provide more information but no particular piece of code directly from the project. Thank you all in advance. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.