%%% Garbage collection may take far longer to trigger for 100,000 refc binaries
%%% than for far fewer non-counted binaries, or may just as well never happen.
%%% In this case, the memory is never reclaimed and we have a leak.
%%% There exist decent work-arounds for this -- fiddling with hibernation,
%%% different GC strategies (tracking refc binary space and doing it manually),
%%% doing it on a per-process basis, and so on.
Picking Up the Trash
Generally, refc binaries memory leaks can be solved in a few different ways:
- call garbage collection manually at given intervals (icky);
- manually track binary sizes and force GC, which defeats the purpose of having garbage collection in the first place and may do a worse job than the VM's virtual binary heap;
- stop using binaries (not desirable);
- or add hibernation calls when appropriate (possibly the cleanest solution).