Apologies in advance if this is not the right group to post this...
I am having a memory leak issue in an app that reads data reports from a
sensor and stores them for a length of time. Running pprof on the app, It
appears that the memory is not getting released when the old data is
purged.
There can be several report types, so I created an interface definition and
am storing these reports under a slice of interfaces in a map with a
timestamp key
When it comes time to purge, I'm setting the slice at that timestamp to
nil, but the memory does not seem to be reclaimed.
Dirty Details:
The data comes in as a string message which I unmarshal into one of the
concrete report types. The reports are stored in the following structure...
map[string]map[int64][]ReportIface where the first map has a key of
sensorID and the inner map has a key of timestamp. The ReportIface is an
interface definition that all of the reports implement
During purging, I roll through the inner map and if the timestamp key is
less than the purge time I run the following
if reports[timestamp] != nil {
reports[timestamp] = nil
}
delete(reports, timestamp).
Is there anything else I need to do for this? Pprof is showing the memory
from the unmarshal as still in use even after the purge.
Thanks in advance,
Chris
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/d0a1eee7-7968-4560-9cd4-98d69e48ea91n%40googlegroups.com.