On Tue, 2007-02-27 at 16:51 +0000, Claus Reinke wrote:

> okay, profiling was not available for the Haskell version back then, but 
> using ML 
> profiling to improve a Haskell version sounds highly dangerous to me, even 
> more 
> so if the authors do not even mention any awareness of this danger. in 3.5.1, 
> we 
> see Alleles as a BoolVector, which sounds fine until we see it converted to 
> its 
> list of associations, which is then foldl-ed (!) over with a non-strict 
> function (good 
> that those chromosome lengths appear to be only 60..), for every evaluation. 
> this 
> is the main evaluation function for fitness, so it should be very much inner 
> loop, 
> with population sizes and generations ranging to 7500/700 and 50/150000.
>  .
> of course, the same function in the ML version just means running a loop over 
> a
> vector, with a strict accumulator..

It'd be interesting to get the real code for this. Partly to just try
optimising it but more so as a real test case for list/array fusion.

As far as I see, there's no reason that consuming an assoc list of a
bool vector with a foldl' (the ' is probably essential) should be slow.
If it's fused properly no list cells should ever be allocated, we should
get the loop over the vector.

Duncan

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to