storing highly shared data structures

Jan-Willem Maessen jmaessen at alum.mit.edu
Tue Jan 10 10:08:19 EST 2006


On Jan 10, 2006, at 4:26 AM, Simon Marlow wrote:

> Christian Maeder wrote:
>> Bulat Ziganshin wrote:
>>> CM> My old version is faster, because the version with  
>>> makeStableName does
>>> CM> very much GC.
>>>
>>> CM>    MUT   time   27.28s  ( 28.91s elapsed)
>>> CM>    GC    time  133.98s  (140.08s elapsed)
>>>
>>> try to add infamous "+RTS -A10m" switch ;)
>> You saved my day, thank you Bulat!
>> Without that flag:
>>   MUT   time   24.30s  ( 24.76s elapsed)
>>   GC    time  131.25s  (140.01s elapsed)
>>   EXIT  time    0.00s  (  0.00s elapsed)
>>   Total time  155.55s  (164.77s elapsed)
>> And with it:
>>   MUT   time   23.86s  ( 24.86s elapsed)
>>   GC    time   11.03s  ( 11.68s elapsed)
>>   EXIT  time    0.00s  (  0.00s elapsed)
>>   Total time   34.89s  ( 36.54s elapsed)
>
> The real problem seems to be that minor GCs are taking too long.   
> Having said that, you can usually reduce GC overhead with large -A  
> or -H options.

Is the full table of stable names being traversed at every minor GC?   
If so, it might be worth somehow segregating the nursery stable  
names.  I bet this complicates management a bunch, though, since  
right now there's only one table to look things up in.

-Jan

>
> Cheers,
> 	Simon
>
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



More information about the Glasgow-haskell-users mailing list