[Haskell-cafe] How on Earth Do You Reason about Space?

Brandon Moore brandon_m_moore at yahoo.com
Tue May 31 20:48:31 CEST 2011


Wait, do ByteStrings show up on a heap profile, if the space is
allocated with malloc?

Anyway, I think my tests still show that the memory used by the
process doesn't grow simply by adding more data, if you
are no longer added keys to the map.



----- Original Message -----
> From: Brandon Moore <brandon_m_moore at yahoo.com>
> To: Aleksandar Dimitrov <aleks.dimitrov at googlemail.com>; "haskell-cafe at haskell.org" <haskell-cafe at haskell.org>
> Cc: 
> Sent: Tuesday, May 31, 2011 1:43 PM
> Subject: Re: [Haskell-cafe] How on Earth Do You Reason about Space?
> 
> I can't reproduce heap usage growing with the
> size of the input file.
> 
> I made a word list from Project Gutenberg's
> copy of "War and Peace" by
> 
> tr -sc '[[:alpha:]]' '\n' < pg2600.txt > words.txt
> 
> Using 1, 25, or 1000 repetitions of this ~3MB wordlist
> shows about 100MB of address space used according
> to top, and no more than 5MB or so of haskell heap
> used according to the memory profile, with a flat
> memory profile.
> 
> 
> Is your memory usage growing with the size of the input
> file, or the size of the histogram?
> 
> I was worried data sharing might mean your keys
> retain entire 64K chunks of the input. However, it
> seems enumLines depends on the StringLike ByteString
> instance, which just converts to and from String.
> That can't be efficient, but I suppose it avoids excessive sharing.
> 
> The other thing that occurs to me is that the total size of
> your keys would also be approximately the size of the input
> file if you were using plain text without each word split onto
> a separate line.
> 
> Brandon
>



More information about the Haskell-Cafe mailing list