Try adding strictness annotations to all the components of all your data structures (i.e. put a ! before the type). Not all of the need it, but I doubt any need to be lazy either. Probably the reason quant8 seems to be taking so much time is that it is where a lot of stuff finally gets forced. Certainly, for things that are "primitive" like Colour and Vector you want the components to be strict, in general.

I just did that. Gives a few percent speed increase. (Turns out on my machine System1 with default options actually takes 5 minutes, not 15. And with the extra strictness, it completes about 40 seconds faster. So not a vast speedup - but worth having!)

Also tried playing with GHC options. I found the following:

-fexcess-precision: No measurable effect.
-funbox-strict-fields: Roughly 40 seconds faster again.
-fno-state-hack: Makes the program somewhat *slower*.
-funfolding-update-in-place: No measurable effect.

Hmm, I suppose if I get *really* desperate, I could always try compiling with GHC 6.6.1 instead of 6.6... ;-)

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to