[Haskell-cafe] help optimizing memory usage for a program
Bulat Ziganshin
bulat.ziganshin at gmail.com
Mon Mar 2 16:32:53 EST 2009
Hello Austin,
Monday, March 2, 2009, 11:51:52 PM, you wrote:
>> let's calculate. if at GC moment your program has allocated 100 mb of
>> memory and only 50 mb was not a garbage, then memory usage will be 150
>> mb
> ? A copying collector allocates a piece of memory (say 10mb) which is
> used as the heap, and only one *half* of it ever has data in it. When
if you interested, i suggest you to run any memory-eater with +RTS -S
switch. it's somewhat hard to decrypt, but finally you will see what i
said.
let's imagine that you have 10mb heap at moment of GC, and only 7 mb
are live. when doing GC, ghc copies live data into new blocks
allocated from the OS. so after GC program will occupy 10+7 mb. ghc
can't return memory back to the OS, so it uses those 10 mb to fulfill
further memory requests. as a result, next GC will occur when 17 mb
will be consumed
you have described some fixed-pool scheme which is probably simplified
description of idea don't taking into account dynamic poll growth
--
Best regards,
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Haskell-Cafe
mailing list