[Haskell-cafe] Slow IO
Udo Stenzel
u.stenzel at web.de
Tue Sep 12 16:26:22 EDT 2006
Daniel Fischer wrote:
> The programme consumed more and more memory (according to top),
> kswapd started to have a higher CPU-percentage than my programme,
> programme died, system yelling 'Speicherzugriffsfehler', top displays
> 'kswapd<defunct>'.
> I believe that means my programme demanded more memory than I have available
> (only 256MB RAM + 800MB swap). Is that a segfault or what is the correct
> term?
>
> That is probably due to (apart from the stupidity of my IO-code) the large
> overhead of Haskell lists.
Most certainly not. I'm pretty sure this is to a bug in your code.
Something retains a data structure which is actually unneeded. Probably
a case of "foldl" where "foldl'" should be used or a "try" in Parsec
code where it should be left out or a lot of "updateWiths" to a Map,
etc. Or it could be a bad choice of data structure. I bet, it's the
map you're using to represent the graph (which you don't even need to
represent at all, btw).
> So the chunk of the file which easily fits into my
> RAM in ByteString form is too large as a list of ordinary Strings.
The chunk of file should never need to fit into RAM. If that's a
problem, you also forgot to prime a crucial "foldl".
Udo.
--
"Proof by analogy is fraud." -- Bjarne Stroustrup
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.haskell.org/pipermail/haskell-cafe/attachments/20060912/a51892d7/attachment.bin
More information about the Haskell-Cafe
mailing list