[Haskell-cafe] Performance question
Thomas van Noort
thomas at cs.ru.nl
Thu Feb 26 05:00:14 EST 2009
First thing I noticed, how about removing the sqrt in isInCircle:
isInCircle :: (Floating a, Ord a) => (a,a) -> Bool
isInCircle (x,y) = x*x + y*y <= 1.0
But you can remove sqrt from the C++ implementation as well, so it only
improves the relative performance if the C++ implementation of sqrt is
worse than its Haskell counterpart.
Regards,
Thomas
haskell at kudling.de wrote:
> Hi,
>
> i have compared a C++ implementation with a Haskell implementation of the Monte Carlo Pi approximation:
>
> http://lennart.kudling.de/haskellPi/
>
> The Haskell version is 100 times slower and i wonder whether i do something obvious wrong.
>
> Profiling says that the majority of the time is spend in "main". But i have no idea where.
>
> Can someone give me a hint?
>
> Thanks,
> Lenny
>
> individual inherited
> COST CENTRE MODULE no. entries %time %alloc %time %alloc
>
> MAIN MAIN 1 0 0.0 0.0 100.0 100.0
> main Main 254 1 88.1 90.8 100.0 100.0
> monteCarloPi Main 255 1 0.6 1.1 11.9 9.2
> pairs Main 257 10000000 0.7 1.4 0.7 1.4
> countHits Main 256 10000001 4.2 2.9 10.6 6.7
> accumulateHit Main 258 27852236 3.0 2.3 6.4 3.8
> isInCircle Main 259 30000000 3.3 1.5 3.3 1.5
> CAF:lit_r1A7 Main 248 1 0.0 0.0 0.0 0.0
> isInCircle Main 260 0 0.0 0.0 0.0 0.0
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list