
On 10/01/06, Daniel Fischer
On my 1.2 GHz Duron (SuSE linux), I get significantly different timings than those on the wiki. Sebastian Sylvan's, Kimberley Burchett's and Bertram Felgenhauer's all take roughly thrice as long as posted (that's rather consistent, but the factor is surprisingly large). Cale Gibbard's takes 18.44 secs for N = 9, which is rather bad, I think.
Well, yeah, it's known not to be as efficient as the others -- I threw it together rather quickly from some parts I had laying around. I unfortunately hadn't tried the naive implementation of permutations since it's actually faster. (My version ought to still be better than the original though.)
Really surprising (to me) are the following (N = 10)
Algo Wiki Here Clean imperative 2.1 s 4.54 s Fastest Pure 1.8 s 8.65 s Fastest Impure 1.4 s 1.77 s.
So the ratio for the fast impure version is approximately 1.6GHz/1.2GHz, which is natural, but the ratio for clean impure is 2.2 and for the fast pure version, it's even 4.8! All are compiled with -O2 -optc-O3. Does that mean my system is really poor in producing binaries from pure Haskell? And why would that be so?
Hmm... that's really odd. Which version of ghc/gcc are you using and how are you measuring the times? Perhaps other processes on your system are interfering? Do you get these numbers consistently? - Cale