Hi all,
recently I have made a long running multiprocess application based on circuits that uses lot of ipc events and later found out that the memory usage of the application constantly increases.
When analyzing memory consumption I have seen a lot of Value objects hanging around in memory. I have prepared an
example where parent and child process exchange 1MB messages that demonstrates rising memory consumption in both parent and child processes, apparently both the event arguments and result values stay in memory forever. Then I have actually spotted one place where the event values get stored indefinitely, that is Bridge()._values dict and was able to make a fix where values are removed from the dict after they are read and not needed any more, see the
commit. Is such approach correct?
While the fix helped to reduce the memory in child process, it still continues to rise in parent process, seems there is still another memory leak somewhere else.
Do you have an idea where to look further?
Thanks,
Viliam