Since working on a AllegroCL-compatible REPL (read-eval-print-loop) for SBCL, I've been spending more time with SBCL. SBCL has focused on their source-code portability and understandability rather than performance optimizations. That's all nice, though benchmarks in SBCL have often underperformed other CL implementations.
I've finished a new set of benchmarks with UMLisp and the latest version of hyperobject. This version of hyperobject adds processing of slot options and also uses more features from the Art of the Metaobject Protocol. Hyperobject has an improved print architecture that is much faster and as well as more flexible and extensible. I've revised my benchmark program so results are not directly comparable to previous published benchmarks. I've also tested Scieneer Common Lisp (SCL) which hyperobject fully supports.
The win for SBCL in this benchmark is huge. It'll be interesting to investigate why this is.
| Impl | Load (user/total) | Print (user/total) |
|---|---|---|
| AllegroCL 6.2 | 8.3/13.8 | 5.5/5.7 |
| CMUCL 18d+ | 6.3/12 | 3.6/5 |
| Lispworks 4.2 | 7.0/12 | 3.5/4 |
| SBCL 0.pre8.58 | 1.8/6.4 | 1.8/1.9 |
| SCL 1.1.1 | 4.7/10.2 | 4.5/4.8 |

Comments (2)
Which versions of SBCL and CMUCL were those?
Posted by Paul Dietz | April 16, 2003 8:52 PM
Posted on April 16, 2003 20:52
Good question, Paul.
I'll update the table with all of the versions.
Posted by Kevin Rosenberg | April 16, 2003 11:58 PM
Posted on April 16, 2003 23:58