Roman Beslik wrote: > This is not strictly a GHC question. I observed that "ld" when > linking GHC-compiled programs eats 0.5 GB of resident memory. ~3 > times more than GHC or Haddock.
Oh I remember investigating this problem 2 years ago. Looking back it seems I never made my observations public. GNU ld uses hash tables to store the symbols of each object file. The default size of those hash tables is 4051, which is a huge waste in Haskell's split-objs case, where object files are plenty and only have a couple of dozen symbols (most of them external references) at most. I've been running binutils with this patch, http://int-e.home.tlink.de/haskell/binutils-2.18-tune-bfd-hash.patch (still applies to 2.20) which changes the default size to 31 and adds some more intermediate sizes. This improves memory usage a lot, at a small cost in running time (if I had numbers, they're lost by now). HTH, Bertram _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users