On Fri, Mar 26, 2010 at 6:49 PM, Jason Dagit <da...@codersbase.com> wrote: > > > On Fri, Mar 26, 2010 at 2:33 PM, Bryan O'Sullivan <b...@serpentine.com> > wrote: >> >> On Fri, Mar 26, 2010 at 10:46 AM, Rafael Cunha de Almeida >> <almeida...@gmail.com> wrote: >>> >>> During a talk with a friend I came up with two programs, one written in >>> C and another in haskell. >> >> Your Haskell code builds a huge thunked accumulator value, so of course >> it's slow (put bang patterns on all arguments). Also, you should use rem >> instead of mod. Make those tiny changes and you'll get a 5x speedup, to half >> the performance of the C code. > > Interesting. I had to add -fvia-C to get within half the performance of C. > Just bang patterns and rem and I'm 1/5th of C. I'm on a x86_64 machine. I > wonder if that plays in. > > Jason >
Using bang patterns didn't help almost anything here. Using rem instead of mod made the time go from 45s to 40s. Now, using -fvia-C really helped (when I used rem but not using mod). It went down to 10s. What's going on here? Doesn't ghc do tail recursion optimization? _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe