You may be on to something about compiler optimizations, but unfortunately it doesn't seem that simple: https://play.golang.org/p/Qa-i5eiRZ_. It looks like using _ was confusing matters, so I switched to using a Println to force actual use of those variables. The issue still occurs with global variables.
On Thursday, December 22, 2016 at 12:38:49 PM UTC-5, Ian Lance Taylor wrote: > > On Thu, Dec 22, 2016 at 9:16 AM, <dr...@pendo.io <javascript:>> wrote: > > It should be clear from the source code, but I'm using two calls to > > runtime.GC() followed by runtime.ReadMemStats(). > > Oh, I see, sorry. My guess is that you are effectively testing the > compiler's statement ordering. The compiler knows that calling Alloc > does not use or affect x or y, so there is no necessary relationship > between setting x and y and calling Alloc. If I change x and y to be > global variables then I do see Alloc drop. > https://play.golang.org/p/NQu_bQxxLY . > > Ian > > > On Thursday, December 22, 2016 at 12:06:13 PM UTC-5, Ian Lance Taylor > wrote: > >> > >> On Thu, Dec 22, 2016 at 8:16 AM, <dr...@pendo.io> wrote: > >> > > >> > I was just toying around with pointers to slice elements, and I ended > up > >> > with this Go program: https://play.golang.org/p/D6e2SHEW1f. By the > end > >> > of > >> > the program, all references to memory in the main function are > dropped, > >> > but > >> > memory isn't freed after a call to runtime.GC(). This happens both in > >> > the Go > >> > Playground and on my local machine (though the latter is running Go > >> > 1.6). > >> > > >> > Is it just that runtime.GC() is not triggering a full GC and a later > run > >> > would clear the memory? Any insight here would be appreciated, as I'm > >> > really > >> > curious now. Also, this isn't just a toy problem; it reflects some > >> > actual > >> > code I'm working on. > >> > >> How are you determining that "memory isn't freed"? There are several > >> possible meanings for that. > >> > >> Ian > > > > -- > > 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...@googlegroups.com <javascript:>. > > For more options, visit https://groups.google.com/d/optout. > -- 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.