Adrian Veith a écrit :
 Hi,

I have problems with memory management in our application-server. The
server uses neko modules for custom calculations. This means that I have
conventional and garbage collected management together in a heavy multi
threaded environment. For the conventional memory management I am now
sure that it is clean, because any block that has been allocated is
freed again. For the garbage collected memory I am not sure, because in
theory the calculations should only use a little memory and after that
it should be available again. I crosschecked and disabled the neko
modules inside th calculations -> memory management is at a green level. Now I tried to help the garbage collector and nilled any object
allocated inside the calculations when it is out of use - but with no
result.
Next try was, to call Gc.run(true) after each calculation - no result.
Now I think, that something blocks the GC from doing its work, but I
don't know where to look.

Is there a way to have better debugging output from the GC ?

It is normal that the Boehm GC keep some allocated memory, you can read more about the way it works on http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcdescr.html

Please note that the GC is also not exact, so it might reach allocated memory through some pointer left on the C stack and then not free it.

Check also the results of neko.vm.Gc.stats()

Best,
Nicolas

--
Neko : One VM to run them all
(http://nekovm.org)

Reply via email to