Skip to content

Instantly share code, notes, and snippets.

@BeRo1985
Created February 5, 2016 08:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BeRo1985/023ab88379b930d79d73 to your computer and use it in GitHub Desktop.
Save BeRo1985/023ab88379b930d79d73 to your computer and use it in GitHub Desktop.
New FLRE benchmark values of 05. Feburary 2015
==============================================
New FLRE benchmark values of 05. Feburary 2015
==============================================
In summary:
Delphi's 32-bit x86 code generator is better than FreePascal's 32-bit x86 code generator,
and FreePascal's 64-bit x86 code generator is better than Delphi's 64-bit x86 code
generator. The x86 inline assembler routines falls not so significant yet, i.e.
somewhere there's a general performance bottleneck respectively performance barrier yet.
Old reference values with Delphi 7 32-bit Build months ago:
==============================================================================
FLRE:
/Twain/ : 8.24 ms | 2388
/(?i)Twain/ : 8.48 ms | 2657
/[a-z]shing/ : 8.67 ms | 1877
/Huck[a-zA-Z]+|Saw[a-zA-Z]+/ : 12.02 ms | 396
/\b\w+nn\b/ : 35.54 ms | 359
/[a-q][^u-z]{13}x/ : 110.64 ms | 4929
/Tom|Sawyer|Huckleberry|Finn/ : 20.05 ms | 3015
/(?i)Tom|Sawyer|Huckleberry|Finn/ : 29.85 ms | 4820
/.{0,2}(Tom|Sawyer|Huckleberry|Finn)/ : 36.13 ms | 3015
/.{2,4}(Tom|Sawyer|Huckleberry|Finn)/ : 36.18 ms | 2220
/Tom.{10,25}river|river.{10,25}Tom/ : 35.26 ms | 2
/[a-zA-Z]+ing/ : 51.06 ms | 95863
/\s[a-zA-Z]{0,12}ing\s/ : 43.90 ms | 67810
/([A-Za-z]awyer|[A-Za-z]inn)\s/ : 15.30 ms | 313
/["'][^"']{0,30}[?!\.]["']/ : 39.75 ms | 9857
Delphi XE7 32-bit Build (without the ported ASM routines):
Time | Match count
==============================================================================
FLRE:
/Twain/ : 8.17 ms | 2388
/(?i)Twain/ : 8.33 ms | 2657
/[a-z]shing/ : 8.36 ms | 1877
/Huck[a-zA-Z]+|Saw[a-zA-Z]+/ : 11.92 ms | 396
/\b\w+nn\b/ : 35.78 ms | 359
/[a-q][^u-z]{13}x/ : 111.98 ms | 4929
/Tom|Sawyer|Huckleberry|Finn/ : 19.68 ms | 3015
/(?i)Tom|Sawyer|Huckleberry|Finn/ : 29.45 ms | 4820
/.{0,2}(Tom|Sawyer|Huckleberry|Finn)/ : 37.16 ms | 3015
/.{2,4}(Tom|Sawyer|Huckleberry|Finn)/ : 37.51 ms | 2220
/Tom.{10,25}river|river.{10,25}Tom/ : 36.21 ms | 2
/[a-zA-Z]+ing/ : 49.99 ms | 95863
/\s[a-zA-Z]{0,12}ing\s/ : 46.56 ms | 67810
/([A-Za-z]awyer|[A-Za-z]inn)\s/ : 14.98 ms | 313
/["'][^"']{0,30}[?!\.]["']/ : 40.17 ms | 9857
Delphi XE7 64-bit Build (with the ported ASM routines):
Time | Match count
==============================================================================
FLRE:
/Twain/ : 12.66 ms | 2388
/(?i)Twain/ : 12.96 ms | 2657
/[a-z]shing/ : 13.22 ms | 1877
/Huck[a-zA-Z]+|Saw[a-zA-Z]+/ : 18.02 ms | 396
/\b\w+nn\b/ : 34.16 ms | 359
/[a-q][^u-z]{13}x/ : 207.20 ms | 4929
/Tom|Sawyer|Huckleberry|Finn/ : 29.43 ms | 3015
/(?i)Tom|Sawyer|Huckleberry|Finn/ : 40.83 ms | 4820
/.{0,2}(Tom|Sawyer|Huckleberry|Finn)/ : 35.26 ms | 3015
/.{2,4}(Tom|Sawyer|Huckleberry|Finn)/ : 34.67 ms | 2220
/Tom.{10,25}river|river.{10,25}Tom/ : 34.63 ms | 2
/[a-zA-Z]+ing/ : 50.86 ms | 95863
/\s[a-zA-Z]{0,12}ing\s/ : 49.50 ms | 67810
/([A-Za-z]awyer|[A-Za-z]inn)\s/ : 20.82 ms | 313
/["'][^"']{0,30}[?!\.]["']/ : 43.80 ms | 9857
FreePascal 32-bit Build (without the ported ASM routines):
Time | Match count
==============================================================================
FLRE:
/Twain/ : 14.08 ms | 2388
/(?i)Twain/ : 14.18 ms | 2657
/[a-z]shing/ : 13.95 ms | 1877
/Huck[a-zA-Z]+|Saw[a-zA-Z]+/ : 19.69 ms | 396
/\b\w+nn\b/ : 35.68 ms | 359
/[a-q][^u-z]{13}x/ : 220.90 ms | 4929
/Tom|Sawyer|Huckleberry|Finn/ : 32.25 ms | 3015
/(?i)Tom|Sawyer|Huckleberry|Finn/ : 44.42 ms | 4820
/.{0,2}(Tom|Sawyer|Huckleberry|Finn)/ : 37.44 ms | 3015
/.{2,4}(Tom|Sawyer|Huckleberry|Finn)/ : 36.89 ms | 2220
/Tom.{10,25}river|river.{10,25}Tom/ : 36.70 ms | 2
/[a-zA-Z]+ing/ : 56.35 ms | 95863
/\s[a-zA-Z]{0,12}ing\s/ : 52.85 ms | 67810
/([A-Za-z]awyer|[A-Za-z]inn)\s/ : 22.58 ms | 313
/["'][^"']{0,30}[?!\.]["']/ : 45.97 ms | 9857
FreePascal 64-bit Build (with the ported ASM routines):
Time | Match count
==============================================================================
FLRE:
/Twain/ : 7.42 ms | 2388
/(?i)Twain/ : 7.66 ms | 2657
/[a-z]shing/ : 8.94 ms | 1877
/Huck[a-zA-Z]+|Saw[a-zA-Z]+/ : 11.48 ms | 396
/\b\w+nn\b/ : 61.15 ms | 359
/[a-q][^u-z]{13}x/ : 115.19 ms | 4929
/Tom|Sawyer|Huckleberry|Finn/ : 20.33 ms | 3015
/(?i)Tom|Sawyer|Huckleberry|Finn/ : 31.19 ms | 4820
/.{0,2}(Tom|Sawyer|Huckleberry|Finn)/ : 35.31 ms | 3015
/.{2,4}(Tom|Sawyer|Huckleberry|Finn)/ : 35.08 ms | 2220
/Tom.{10,25}river|river.{10,25}Tom/ : 34.54 ms | 2
/[a-zA-Z]+ing/ : 51.84 ms | 95863
/\s[a-zA-Z]{0,12}ing\s/ : 50.69 ms | 67810
/([A-Za-z]awyer|[A-Za-z]inn)\s/ : 16.49 ms | 313
/["'][^"']{0,30}[?!\.]["']/ : 39.76 ms | 9857
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment