[Haskell-cafe] announce: Glome.hs raytracer (memory leak with
jsnow at cs.pdx.edu
Thu Mar 27 14:58:36 EDT 2008
> On 27/03/2008, at 3:49, Ian Lynagh wrote:
>> On Wed, Mar 26, 2008 at 02:33:20PM -0700, Jim Snow wrote:
>>> -Memory consumption is atrocious: 146 megs to render a scene that's a
>>> 33k ascii file. Where does it all go? A heap profile reports the max
>>> heap size at a rather more reasonable 500k or so. (My architecture is
>>> 64 bit ubuntu on a dual-core amd.)
>> I haven't looked properly yet, but it looks like something is leaking
>> memory that shouldn't be. The attached Gloom.hs uses constant memory,
>> but if you replace the "map" with the commented out "(parMap rnf)" then
>> the memory use seems to keep increasing, even once it has run display
>> once and is running it a second or third time.
> In my system the leak only appears with +RTS -N1 (which is the default).
> If I use -N2 or higher, then your version runs in constant memory with
> (parmap rnf).
Using Ian Lynagh's Gloom.hs (I'm not sure if that's a typo, but it's a
convenient way to distinguish it
from my original Glome.hs):
With parMap and +RTS -N2, I get 59 megs total mapped memory, 18 megs
resident all three iterations.
With parMap and +RTS -N1, I get 53/21, then 99/66, then 145/112 megs
With map and no RTS options, memory use is 37/4.8 all three iterations.
I'm using ghc 6.8.2 on 64-bit ubuntu.
More information about the Haskell-Cafe