[Haskell-cafe] Re: bizarre memory usage with data.binary

Dan Weston westondan at imageworks.com
Tue Oct 2 20:11:50 EDT 2007


Maybe what you are observing is that the operational semantics of 
undefined is undefined. The program can halt, run forever, use no 
memory, use all the memory.

Although I doubt what GHC does with this code is a random process, I 
don't think it's too meaningful to ask what are the space usage patterns 
of a program returning bottom.

Anatoly Yakovenko wrote:
> Program1:
> 
> module Main where
> 
> import Data.Binary
> import Data.List(foldl')
> 
> 
> main = do
>   let sum' = foldl' (+) 0
>   let list::[Int] = decode $ encode $ ([1..] :: [Int])
>   print $ sum' list
>   print "done"
> 
> vs
> 
> Program2:
> 
> module Main where
> 
> import Data.Binary
> import Data.List(foldl')
> 
> 
> main = do
>   let sum' = foldl' (+) 0
>   let list::[Int] = [1..]
>   print $ sum' list
>   print "done"
> 
> neither program is expected to terminate.  The point of these examples
> is to demonstrate that Data.Binary encode and decode have some strange
> memory allocation patters.
> 
> If you run Program1, it will run forever, but its memory usage on my
> machine goes to 500M then back down to 17M then back up to 500M then
> back down to 17M... repeatedly.  I don't think this has anything to do
> with running out of space in a 32 bit integer.
> 
> Program2 on the other hand runs at constant memory at around 2M.
> 
> Anatoly
> 
> On 10/2/07, Anatoly Yakovenko <aeyakovenko at gmail.com> wrote:
>> i am getting some weird memory usage out of this program:
>>
>>
>> module Main where
>>
>> import Data.Binary
>> import Data.List(foldl')
>>
>>
>> main = do
>>    let sum' = foldl' (+) 0
>>    let list::[Int] = decode $ encode $ ([1..] :: [Int])
>>    print $ sum' list
>>    print "done"
>>
>> it goes up to 500M and down to 17M on windows.  Its build with ghc
>> 6.6.1 with the latest data.binary
>>
>> Any ideas what could be causing the memory usage to jump around so much?
>>
>>
>> Thanks,
>> Anatoly
>>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 
> 




More information about the Haskell-Cafe mailing list