Thank you for your answer, I now understand a bit better what is going on. On Sun, Oct 16, 2016 at 7:56 PM, andrey mirtchovski <mirtchov...@gmail.com> wrote:
> > Here some pprof result using go 1.7.1 first and tip later: > > If I understand you correctly, you still have questions about memory > management, but the nature of the question has changed from "why does > this function keep increasing memory consumption" to "why does my > program consume so much memory"? I think the former was answered. The > latter boils down to the nature of Go memory management. > > A variable called GOGC controls when the next collection will begin. > "A collection is triggered when the ratio of freshly allocated data to > live data remaining after the previous collection reaches this > percentage." GOGC by default is 100, so you roughly double your > used/allocated memory before you start freeing up objects. To monitor > the collection cycles you can run your code with > "GODEBUG=gctrace=1"[1] (see link at bottom for documentation). > > Go normally does not return all deallocated memory to the host > immediately after deallocation. That would not be very efficient. > Instead, scavenging happens on certain intervals. gctrace=1 will > output information about that too, the documentation of the format is > again at the link at the bottom. > > -- > 1: https://golang.org/pkg/runtime/ > -- Raffaele Di Fazio -- 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.