[fpc-pascal] Happy tickets benchmark

Adrian Veith adrian at vtim.de
Sun Feb 14 10:51:27 CET 2016


When I change the programm to run inside a procedure (because this would
be the more realistic scenario) the performance decreases about 15% -
160ms in global vs 185ms inside procedure.

program HappyTickets;

uses
  SysUtils, DateUtils;

procedure run;
  var
    n1, n2, n3, n4, n5, n6, n7, n8: 0..9;
    TicketsCount: int64;
    d1, d2: TDateTime;
  begin
    TicketsCount := 0;
    d1 := Now;
    for n1 := 0 to 9 do
      for n2 := 0 to 9 do
        for n3 := 0 to 9 do
          for n4 := 0 to 9 do
            for n5 := 0 to 9 do
              for n6 := 0 to 9 do
                for n7 := 0 to 9 do
                  for n8 := 0 to 9 do
                    if n1 + n2 + n3 + n4 = n5 + n6 + n7 + n8 then
                      TicketsCount := TicketsCount + 1; //
Inc(TicketsCount) may be slower in FPC
    d2 := Now;
    writeln('Found ', TicketsCount, ' tickets. Elapsed time, msec: ',
DateUtils.MilliSecondsBetween(d1, d2));
  end;

begin
    run;
end.


Am 13.02.2016 um 11:44 schrieb Serguei TARASSOV:
> Hello,
>
> Here is my little brute-force test for FPC, C and C# compilers.
> http://arbinada.com/main/en/node/1532
>
> The results are not so good with FPC but I cannot use Delphi to
> compare on Linux.
>
> Could anyone make the series on Windows with FPC, Delphi and MS .Net?
> The test of FPC 3.0 and any other comments are welcome.
>
> Regards,
> Serguei
> _______________________________________________
> 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