Andrea Vezzosi wrote:
wren ng thornton wrote:
With this change [1] I can't notice any difference for your benchmark[2].
Then again, all the runTest calls take 0 msec and I've had no luck making
the computation take much time; perhaps your computer can detect a
difference.
On my machine, with ghc-6.12.1, yours and the original ErrCPS give
quite similar results, both ~2x slower than Either.
However it's important to note that these results are highly dependent
on the monadic expressions being evaluated, with a different benchmark
you can get an huge speedup with the CPS versions.
That's very curious. After installing Criterion, my machine (OSX 10.5.8
2.8GHz Intel Core2Duo, GHC 6.12.1 with -O2) shows only 1% difference
between my ErrCPS and Either on this benchmark. Alas, I can't print
kernel density graphs since Crieterion charts are broken on 6.12. It
seems buggy that your platform would behave so much differently...
mkEMA is in fact quite peculiar, since there's no catchError and the
throwError call is rarely (or never?) made, and thanks to foldM you
get that (>>=) is only used in a right associated way, which is the
ideal situation for Either.
Indeed, mkEMA is a sort of worst-case comparison that doesn't take
advantage of the ability to short-circuit.
--
Live well,
~wren
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe