getMBlocks

Rich Fought whatever at fsrz.net
Mon Aug 7 18:28:12 EDT 2006


Hello,

I'm still chasing down a memory leak in my server application written in 
Haskell using GHC 6.4.x under MinGW/MSYS.  In the scenario described 
below, I am repeating the same server request once per second continuously.

After utilizing some memory monitoring tools I've discovered that memory 
usage fluctuates within in a range of approximately 850 KB (I assume as 
garbage is collected), but at regular intervals the range gets bumped up 
by ~ 1 MB.  So in effect I get a stair-stepping of memory usage that 
keeps repeating until memory runs out.  WinDbg has revealed that this 
stepping coincides with the GHC runtime function getMBlocks().

My question is: what conditions affect when the runtime determines that 
it needs more memory?  Is it a pure "no more room" trigger or is there 
some sort of algorithm behind it?

I assume that this behavior means I still have a space leak somewhere in 
my Haskell code, though none of leak check tools I utilize indicate such.

Thanks,
Rich


More information about the Glasgow-haskell-users mailing list