[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