Hi.

In the "help optimizing memory usage for a program" I discovered some interesting things:


1) Using lazy ByteStrings to read files it not a good choice, since the
   garbage collector is not able to proper garbage cleanup.

   Running with -F1 RTS flag, however, keeps memory usage down.

2) UArr from uvector leaks memory.
   I'm rather sure about this.

   In fact the memory usage of my program is 815 MB, when:
   - I use lazy ByteString with -F1 flag
   or
   - if I use strict ByteString


Using UArray and strict ByteString, memory usage is 660 MB.

In total I have 17770 arrays, so there is a leak of about 9146 bytes per array.


In another program, where I do a lot of array concatenations, memory leak is much more evident.
Even using -F1 flag, memory usage grows too much.


Is this a know bug?
How can I verify if it is really a memory leak bug?


pumpkin_ (on #haskell.it) suggested me to use a more recent version of uvector package, from
http://patch-tag.com/publicrepos/pumpkin-uvector

Using this version memory usage is, finally, 643 MB!
(and execution if a bit faster, too).


The other program, with a lot of array concatenations, still eats a lot of memory...



Thanks   Manlio Perillo
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to