Re: free seems not work
- Posted by mattlewis (admin) Feb 23, 2011
- 1639 views
I have "griped" about Eu not releasing memory back to the OS, but only very large amounts. If you have a program that eats up a ton of memory with some initialization routine, but then never needs it again, Eu will hold onto it forever (mostly -- it will release maybe 25% of it) even if you release the variables holding it (i.e. ref count = 0). I'm talking 100s or 1000s of megabytes not available to other programs and un-needed by the Eu program holding onto it. I thought this would no longer be an issue with Eu4.0 cause you can compile with "system managed memory", but I tried that and it seemed to have no effect. But I've moved to Windows 7 64-bit since I last had this discussion (used to use XP 32-bit), so maybe the Windows memory management is the difference -- it does seem to do a better job swapping out the Eu memory hogging program now if another program needs the RAM, but I don't see why the Eu program needs to hold onto it at all in such huge amounts.
Looking at the code, we appear to use HeapAlloc and HeapFree for memory allocation and freeing.
The managed memory stuff hangs onto sequence allocations, not user allocations.
Matt