storing highly shared data structures

Bulat Ziganshin bulatz at
Tue Jan 10 12:44:34 EST 2006

Hello Simon,

Tuesday, January 10, 2006, 12:26:30 PM, you 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 ;)

SM> The real problem seems to be that minor GCs are taking too long.  Having 
SM> said that, you can usually reduce GC overhead with large -A or -H options.

it is the same problem as with scanning large IOArrays on each GC. in
this case, i think, table of stable names scanned each time and
therefore program works so slow. if ghc will dynamically increase
"+RTS -A" area when there are a large IOArrays/stable names table,
this would help improve speed significantly. also, i want to remind my
old suggestion to temporarily disable all GCs, or better to
temporarily change "-A" area at the programs request. That will help
programs like Joels one and my own, where large data structures (say,
5 or 20 mb) are created, used and then completely discarded

Best regards,
 Bulat                            mailto:bulatz at

More information about the Glasgow-haskell-users mailing list