[gambit-list] Benchmark results for dependency graph calculation by gsc (i586, x86-64, and x32)
Sven Hartrumpf
hartrumpf at gmx.net
Mon Sep 9 10:25:08 EDT 2019
Hello Gambit users.
I would like to share some interesting benchmark results that compare
i586, x86-64 and x32 ABI. The experiments were done with the released
version 4.9.3 of Gambit, gcc 8.3.0, a Ryzen 7 1800X and a quite large Scheme code
file as input to the -dg option of Gambit, which calculates a dependency graph
like this:
gsc -:l60 -c -dg largescheme.scm
The binary gsc was built for all three architectures.
The runtimes for the gsc call above are reported as averages over 5 runs.
arch. runtime (s) size RSS (MB)
x32 67.90 2200
x86-64 71.90 + 6 % 4360 +98 %
i586 80.31 +18 % 2200 + 0 %
I have reported similar numbers for other Scheme implementations and other
benchmarked programs.
For some of them, the runtime difference are more drastic (20 - 30 %) in favor
of x32.
For garbage-intensive programs, the results (like the ones listed above) can be
summarized as follows:
1. x86-64 increases memory demands by a factor of 2.
2. i586 loses significantly in speed because it cannot used all features and registers
of a 64bit CPU.
3. x32 can be faster than x86-64 for Scheme programs as described above, probably
because GC has to look at only half of the memory (compared to x86-64).
Ciao
Sven
More information about the Gambit-list
mailing list