[Haskell-cafe] An interesting toy

Andrew Coppin andrewcoppin at btinternet.com
Sat May 5 17:49:38 EDT 2007


> 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... ;-)



More information about the Haskell-Cafe mailing list