[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