[fpc-pascal] Happy tickets benchmark

Adrian Veith adrian at vtim.de
Mon Feb 15 07:24:19 CET 2016


Hm,

doing the same trick in C, it goes down from:

40ms (original) to 3ms (omit the inner loop).

This is still the same distance to fpc (v 3.0.0 with -O4 -Ooloopunroll)

185ms (original) to 12ms (omit the inner loop).

C is 4 times faster here.

Am 14.02.2016 um 12:09 schrieb Michael Van Canneyt:
>
>
> On Sun, 14 Feb 2016, Florian Klaempfl wrote:
>
>> Am 14.02.2016 um 10:45 schrieb Mattias Gaertner:
>>> On Sun, 14 Feb 2016 10:35:22 +0100
>>> Florian Klaempfl <florian at freepascal.org> wrote:
>>>
>>>> [...]
>>>> Do you think people will bother? Nobody mentioned to the original
>>>> poster
>>>> so far:
>>>> - that the used FPC is outdated
>>>> - that only -O2 is used instead of -O3 (or -O4 with 3.0.0)
>>>> - that even FPC 2.6.4 has a -Ooloopunroll option which is never
>>>> enabled
>>>> by default and which is worth a try
>>>>
>>>> I do not know if the points above really effect the example, but it
>>>> tells me enough not to bother either :)
>>>
>>> Maybe documentation helps here.
>>
>> You mean something like the page Size Matters? See the post of Martin
>> Schreiber how much such pages help.
>>
>>>
>>> Is there already a page "pimp my fpc"?
>>
>> In this case even fpc -h would have helped :)
>>
>> But actually, before bothering randomly with command line options, I
>> would just rewrite the inner loop. Something like
>>              for n7 := 0 to 9 do
>>                if n1 + n2 + n3 + n4 - n5 - n6 - n7 in [0..9] then
>>                  Inc(TicketsCount);
>> should be much better.
>
> To back up Florian with numbers:
>
> No in:
> Found 4816030 tickets. Elapsed time, msec: 171
>
> Using in:
> Found 4816030 tickets. Elapsed time, msec: 23
>
> Michael.
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal




More information about the fpc-pascal mailing list