[Haskell-beginners] performance issues

Sunil S Nandihalli sunil.nandihalli at gmail.com
Sat Aug 20 10:50:00 CEST 2011


Thanks Daniel for your response. sieve of Eratosthenes has a very
elegant 1 line implementation thanks to laziness of haskell. Here is
what I came up with

primesSieve = 2:3:5:7:11:(filter (\x->(all (\p-> 0/=(mod x p))
(takeWhile (\p-> p*p<=x) primesSieve))) [13..])

But didn't seem to make a difference in performance. I had missed the
most obvious of things.... that is adding -O2 when compiling.. It gave
a speedup of close to 100 times which was very surprising! .. I
remember people setting some compiler options in the source file
itself. Can you shed some light on that?

Thanks,
Sunil.

On Fri, Aug 19, 2011 at 3:55 PM, Daniel Fischer
<daniel.is.fischer at googlemail.com> wrote:
> On Friday 19 August 2011, 12:02:30, Sunil S Nandihalli wrote:
>> Hello everybody,
>>  I am a newbie to haskell. I was wondering if there are things I need
>> to do to make the following code faster.
>
> From a short look, you'll probably need a faster prime generation, try a
> sieve of Eratosthenes, that's pretty fast. The rest looks okay
>
>> I have tried changing the
>> Integer to Int but did not help much..
>>
>> https://gist.github.com/c1ee2d6397cd5b28ade5
>>
>> Thanks in advance.
>> Sunil.
>



More information about the Beginners mailing list