XL1201 Mini-benchmark

UPDATED July 28, 2016: More mini-benchmark results added.

I was asked to do a simple benchmark of the XL1201 by Jerome Ibanes and share the results. Here is his requested code:

(defun fib(n) 
  (if (or (= n 0) (= n 1)) 
      1 
      (+ (fib (- n 1)) (fib (- n 2)))))
(compile 'fib)
(time (fib 30))

He asked for a few timings with values from 20 to 38.

For comparison, here is the output from LispWorks Personal 6 on a 2015 MacBook Pro with a 3.1 GHz Core i7:

CL-USER 4 > (time (fib 36))  
Timing the evaluation of (FIB 36)

User time    =        0.248  
System time  =        0.001  
Elapsed time =        0.243  
Allocation   = 79924 bytes  
0 Page faults  
24157817  

Typing the same things into the Genera 8.3 Command Processor of the XL1201 was interesting. First off, there is no automatic syntax indenting. Second, when you type a close parenthesis, it blinks the corresponding open. Third, it starts evaluating the form as soon as you close the final parenthesis.

Here is the direct output from the XL1201:

XL1201 fib timings

Going from 73.88 seconds to 0.25 seconds is almost 300x faster for the MacBook Pro.

For the MacIvory III, the speeds are similar.

MacIvory III fib timings

Speed table

FibLispWorks 6 PersonalXL1201MacIvory III
20-0.033420s-
30-4.097376s4.096724s
360.248s73.882416s73.062866s
38-192.115780s191.403260s

Chris Hanson provided a few more data points for (fib 36) in the comments below:

  • Raspberry Pi: 27.553s with SBCL
  • Raspberry Pi 2: 1.929s with CCL, 16.847s with SBCL
  • Raspberry Pi 3: 1.521s with CCL, 11.490s with SBCL
  • MacBookPro11,5 (2.8GHz i7): 0.158s with CCL, 0.343s with SBCL

(I apologize about the bad MacIvory screen image. I was attempting to use an AV.io HD VGA to USB3 converter to capture the Quadra 650's display, but it doesn't seem to work well with either 1024x768 75Hz or 1152x870 75Hz. Very annoying.)

Douglas Fields

Writing LISP and Haskell since 1990