84 lines
4.9 KiB
Plaintext
84 lines
4.9 KiB
Plaintext
The Performance of the Lyric Common Lisp Compiler
|
||
vs the Byte Compiler on selected Gabriel Benchmarks
|
||
|
||
3/18/87
|
||
|
||
The Gabrile IO benchmarks (Fprint, Fread, Tprint), and the Gabriel polynomial benchmarks were not included (will be dealt with separately). Traverse-init and Traverse were dropped because the circular structure created by traverse-init cloggs the garbage collection hash tables and renders timings for that benchmark (and subsequent benchmarks) not reproducable.
|
||
|
||
All results are for an 1186 with 3.7 MB running the lispcore sysout of 12-MAR-87.
|
||
|
||
Full transcripts are available on:
|
||
|
||
{eris}<lispcore>gabriel>results>tak-pav.benchmarks
|
||
{eris}<lispcore>gabriel>results>tak-byte.benchmarks
|
||
{eris}<lispcore>gabriel>results>all-pav.benchmarks
|
||
{eris}<lispcore>gabriel>results>all-byte.benchmarks
|
||
|
||
The Tak Family of Benchmarks:
|
||
|
||
Benchmark Lyric-CL(secs) Byte(secs) Ratio
|
||
Tak 1.79 1.63 1.10
|
||
Takr 1.84 1.74 1.06
|
||
Stak 12.69 4.59 2.76 (1)
|
||
Takl 15.52 13.37 1.16
|
||
Ctak 55.67 96.82 0.57 (2)
|
||
|
||
(1) The Byte Compiler benefits from an optimization not implemented in the Lyric Common Lisp Compiler
|
||
(2) Although the Lyric Common Lisp compiler does better on Ctak than the Byte compiler, Lyric-compiled Ctak conses (due to an Mvlist) -- this could be optimized away.
|
||
|
||
|
||
The Aref'y Family of Benchmarks:
|
||
|
||
Benchmark Lyric-CL (Cpu) Byte (Cpu) Ratio (Cpu)
|
||
Puzzle 48.18 48.18 56.60 56.60 0.85 0.85
|
||
Triang 783.74 783.27 743.32 742.71 1.05 1.05
|
||
FFT 186.69 81.20 195.58 87.47 0.95 0.93
|
||
|
||
|
||
The Cons'y Family of Benchmarks:
|
||
|
||
Benchmark Lyric-CL (Cpu) Byte (Cpu) Ratio (Cpu)
|
||
Div2-I 35.45 12.62 29.14 8.94 1.22 1.41
|
||
Div2-R 39.14 14.93 34.66 13.42 1.13 1.11
|
||
Destruct 21.37 15.00 21.31 15.39 1.00 0.97
|
||
Deriv 70.35 25.23 64.70 21.57 1.09 1.17
|
||
DDeriv 83.87 31.88 77.02 28.14 1.09 1.13
|
||
Boyer 141.22 101.76 143.74 103.58 0.98 0.98
|
||
Browse 589.84 323.96 912.23 634.4 0.65 0.51
|
||
Browse* 310.64 192.93 384.12 269.42 0.81 0.72 (1)
|
||
|
||
(1) Browse* is a modified version of the browse benchmark which uses an implementation of the char1 macro that doesn't cons.
|
||
|
||
|
||
Comparison with Koto Interlisp Benchmarks
|
||
|
||
The koto results were compiled last year on an 1186 with 3.7MB running the vanilla Koto full.sysout with cmlarray loaded. The Koto benchmarks were implemented in Interlisp.
|
||
|
||
Benchmark Koto-I (Cpu) Lyric-CL (Cpu) Ratio (Cpu)
|
||
Tak 1.69 1.69 1.79 1.79 0.94 0.94
|
||
Takr 1.77 1.77 1.84 1.84 0.96 0.96
|
||
Stak 4.36 4.36 12.69 12.69 0.34 0.34
|
||
Takl 12.6 12.6 15.52 15.52 0.81 0.81
|
||
Ctak 55.1 55.1 55.67 49.3 0.99 1.12
|
||
|
||
Puzzle 114.0 114.0 48.18 48.18 2.37 2.37
|
||
Triang 2170.44 2170.0 783.74 783.27 2.77 2.77
|
||
FFT 825.0 660.0 186.69 81.20 4.42 6.10 (1)
|
||
|
||
Div2-I 30.21 9.51 35.45 12.62 0.85 0.75
|
||
Div2-R 33.7 12.6 39.14 14.93 0.86 0.84
|
||
Destruct 18.82 12.8 21.37 15.00 0.88 0.85
|
||
Deriv 61.5 21.9 70.35 25.23 0.87 0.87
|
||
DDeriv 80.1 31.8 83.87 31.88 0.96 1.00
|
||
Boyer 100.10 63.4 141.22 101.76 0.71 0.62 (2)
|
||
Browse 300.0 174.0 589.84 323.96 0.51 0.54 (3)
|
||
Browse* 300.0 174.0 310.64 192.93 0.96 0.90 (4)
|
||
|
||
|
||
(1) FFT speed up largely due to microcode support for Floating point arithmetic.
|
||
|
||
(2) Boyer conses compiled-closures in Lyric
|
||
|
||
(3) Koto figures not avaiable for 1186 -- Published 1108 values used instead. Symbol-name conses string headers in Lyric.
|
||
|
||
(4) An implementation of browse that avoids use of Symbol-name |