I took a quick look at the code. There's the Receive loop, you allocate and decode ReceivedGobs there. As part of the ReceivedGob, a WatheverDevice is also allocated and decoded. Assuming there are no errors in decoding, you do SendResult(Device), which sends the Device to the "input" channel. I seem to understand that you expect the ReceivedGobs to be garbage collected and it seems to me that it should indeed happen. Maybe are the Devices that are filling your memory? Where do the Devices go, after they are sent to "input"?
On Thursday, October 13, 2016 at 7:22:49 PM UTC+2, Morgan Hein wrote: > > Howdy, > > I'm struggling here, and hopefully someone can point me in the right > direction. > > > Here's a playground with the code <https://play.golang.org/p/OQZBSnxXmI> > in question. Here's the pprof with memory usage > <https://dl.dropboxusercontent.com/u/11780/memgraph-huge.pdf?dl=1> > <https://docs.google.com/viewer?url=https%3A%2F%2Fdl.dropboxusercontent.com%2Fu%2F11780%2Fmemgraph-huge.pdf%3Fdl%3D1&embedded=true&chrome=false&dov=1> > . > > > I cannot understand why the memory usage is going up so much. As far as I > can tell, not only am I copying the data structure that is received in the > Gob, but i'm setting the original value of the ReceivedGob to nil. Why, > then, does the reflect.mapassign and gob.Decoder continue to increase in > memory? > > I am either missing something about scope, pointers, or Gob. Any insights > or help would be greatly appreciated. > > Thanks! > -- 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.