[Haskell-cafe] GHC vs GCC

Rafael Almeida almeidaraf at gmail.com
Sat Mar 27 00:43:34 EDT 2010


On Fri, Mar 26, 2010 at 6:49 PM, Jason Dagit <dagit at codersbase.com> wrote:
>
>
> On Fri, Mar 26, 2010 at 2:33 PM, Bryan O'Sullivan <bos at serpentine.com>
> wrote:
>>
>> On Fri, Mar 26, 2010 at 10:46 AM, Rafael Cunha de Almeida
>> <almeidaraf at 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?


More information about the Haskell-Cafe mailing list