Memory analysis in Go
Generic references and points to consider when doing a memory analysis with go programming language.
-
Go returns memory to OS gradually. Typical time is ~5 minutes. If immediate return is needed, we could use FreeOSMemory . General recommendation is that if this is needed, manage memory alternatively.
-
Alternative for frequent allocated and reused objects is sync.Pool usage. This is tricky and have to be careful when doing this. Sample usage can be found in blog .
-
Excellant High performance go tips are avilable at this post . This talks about memory and GC too.
-
Garbage collection behaviour is well explianed at: Ardan labs Post 1 , Post 2 and Post 3 . Also there is this keynote explaining the evolution of Go’s garbage collector.