Difference between revisions of "Improving language shootout results"

From Free Pascal wiki
Jump to navigationJump to search
Line 18: Line 18:
 
include SysUtils unless really required. 32 bit integers should be used when possible to increase
 
include SysUtils unless really required. 32 bit integers should be used when possible to increase
 
speed as the benchmarking machine is x86(athlon 1Gb, 256Mb ram).
 
speed as the benchmarking machine is x86(athlon 1Gb, 256Mb ram).
Use of inline and records instead of classes can also improve performance considerable, but
+
Use of inline and records instead of classes can also improve performance considerably, but
 
additional testing and comparing with C and other languages should be the main factor.
 
additional testing and comparing with C and other languages should be the main factor.
 
Special note: inlining of recursive functions is possible and sometimes increases speed.
 
Special note: inlining of recursive functions is possible and sometimes increases speed.

Revision as of 11:05, 5 July 2005

About

The computer language shootout (http://shootout.alioth.debian.org/benchmark.php) is a realisticly flawed benchmarking system which compares many languages on illogical basis. See their homepage for more info.

Goals

Our goals are to be on the highest possible positions. The requirements to reach them can be categorized into two.

1: Optimalizations on the assembler level. (core devel work)

2: Optimalizations of the benchmarks. (junior devel work)

Way to go

It was decided that to keep memory requirements low it's best to use val() and str() and never include SysUtils unless really required. 32 bit integers should be used when possible to increase speed as the benchmarking machine is x86(athlon 1Gb, 256Mb ram). Use of inline and records instead of classes can also improve performance considerably, but additional testing and comparing with C and other languages should be the main factor. Special note: inlining of recursive functions is possible and sometimes increases speed.