[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