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.

Reply via email to