[Haskell-cafe] Speed up ghc -O2

Kees Bleijenberg K.Bleijenberg at lijbrandt.nl
Wed Apr 1 13:30:35 UTC 2015


My program reads a xls file and creates a haskell program that does exactly
the same as what the xls does. Every cell in the xls is a function and
contains 2 lines: 

the type declaration and 1 line the implementation. The type of a cell is
XlsCell.

data XlsCell = Reader ExternalCells XlsCellRes

data XlsCellRes = XlsCellString String | XlsCellBool Bool | .....

type ExternalCells = Map String XlsCellRes   -- search (or set) a value of a
cell by its name.

The externalCells are for the cells you can change at runtime.

The generated program was first 30000 lines. When I compiled it with ghc
7.8.3. -O0 the program worked, but was terribly slow. With -O2 I got: out of
memory.

With a few trics the generated code is now split up in 2 files 5000 and
10000 lines. I've upgraded to ghc 7.8.4. If I do ghc -O2 the program takes
more then 4 hours 

to compile. The -O2 compilation is essential. The resulting program is much
(more then 10x) faster then without -O2.

What can I do (changes in the generated code, changes to speed up ghc?) to
make ghc faster with -O2? I tried ghc-make, but it doesn't make a big
difference.

 

Kees

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150401/ceeb76be/attachment.html>


More information about the Haskell-Cafe mailing list