Relative Compile Performance of clasp - clasp-developers/clasp GitHub Wiki
Compiler performance tests (not speed of compiled code)
In the following table one can find compiler performance of clasp for some tasks compared with ecl, sbcl and clozurecl
| Date | Version | asdf | cl-jpeg | ironclad | clx | babel | cl-unicode | flexi-streams | opticl | mcclim | total |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002-02-13 | 1195e54d7 | 93.95 | 42.60 | 523.68 | 597.14 | 92.49 | 295.30 | 121.14 | 193.13 | 763.79 | 2723.22 |
| 2002-02-13 | ECL 21.2.1 | 26.42 | 108.71 | 339.59 | 183.74 | 18.90 | 104.89 | 59.60 | 127.55 | 311.71 | 1281.11 |
| 2002-02-13 | SBCL 2.2.1 | 3.16 | 1.04 | 40.58 | 8.84 | 2.11 | 2.70 | 3.08 | 11.12 | 21.02 | 93.65 |
| 2002-02-13 | ccl 1.12.dev | 3.49 | 0.78 | 17.99 | 6.60 | 1.59 | 4.27 | 2.19 | 8.33 | 21.39 | 66.64 |
Note that e.g. :mcclim depends on :clx and :cl-jpeg, so that order of timings is important
Commands used (fresh start after each compile in this order):
(time (compile-file "source-dir:src;lisp;modules;asdf;build;asdf.lisp"))(time (ql:quickload :cl-jpeg))(time (ql:quickload :ironclad))(time (ql:quickload :clx))(time (ql:quickload :babel))(time (ql:quickload :cl-unicode))(time (ql:quickload :flexi-streams))(time (ql:quickload :opticl))(time (ql:quickload :mcclim))
Cl-Bench tests (speed of compiled code (apart from test compiler)
To reproduce:
- Sources in https://gitlab.common-lisp.net/kpoeck/cl-bench.git, branch feature-clasp-clbench
- Execute
(load "load-cl-bench.lisp") - Remember that tests are done with default optimization settings!
Benchmarked on: x86_64 Darwin Kernel Version 18.7.0: Tue Nov 10 00:07:31 PST 2020; root:xnu-4903.278.51~1/RELEASE_X86_64 karsten-poecks-macbook-pro.local
| Benchmark | Best | Clozure Common Lisp Version 1.12 (v1.12-dev.3-125-g595a5cf4) DarwinX8664 | ECL 20.4.24-develop | SBCL 2.0.11 | clasp cclasp-boehm-0.4.2-3458-ga7a2855e3-cst | clasp cclasp-boehm-0.4.2-3593a-gcf622f75c-cst | clasp cclasp-boehm-0.4.2-3630-ge045444b6-cst-a |
|---|---|---|---|---|---|---|---|
| Date | 20201121T0942 | 20201230T0742 | 20201227T0956 | 20201129T1008 | 20201227T1609 | 20210119T2209 | |
| COMPILER | 0,76 | 0,82 | 1,54 | 0,76 | 18,14 | 15,43 | 14,11 |
| LOAD-FASL | 0,07 | 0,11 | 0,14 | 0,07 | 2,59 | 2,36 | 2,55 |
| SUM-PERMUTATIONS | 0,21 | 1,51 | 2,12 | 0,21 | 2,59 | 2,51 | 3,10 |
| WALK-LIST/SEQ | 0,01 | 0,01 | 0,01 | 0,01 | 0,02 | 0,02 | 0,02 |
| WALK-LIST/MESS | 0,02 | 0,02 | 0,35 | 0,02 | |||
| BOYER | 0,19 | 0,83 | 0,63 | 0,19 | 1,03 | 0,96 | 1,00 |
| BROWSE | 0,11 | 0,30 | 0,26 | 0,11 | 0,75 | 0,49 | 0,49 |
| DDERIV | 0,11 | 0,24 | 0,59 | 0,11 | 2,00 | 1,82 | 1,86 |
| DERIV | 0,12 | 0,25 | 0,61 | 0,12 | 2,20 | 2,02 | 2,07 |
| DESTRUCTIVE | 0,10 | 0,24 | 0,41 | 0,10 | 0,63 | 0,61 | 0,61 |
| DIV2-TEST-1 | 0,18 | 0,38 | 0,75 | 0,18 | 2,10 | 2,07 | 2,07 |
| DIV2-TEST-2 | 0,25 | 0,51 | 1,05 | 0,25 | 2,44 | 2,51 | 2,40 |
| FFT | 0,02 | 0,06 | 1,53 | 0,02 | 0,72 | 0,69 | 0,72 |
| FRPOLY/FIXNUM | 0,14 | 0,33 | 1,20 | 0,14 | 0,83 | 0,80 | 0,82 |
| FRPOLY/BIGNUM | 0,13 | 0,51 | 0,41 | 0,13 | 0,69 | 0,68 | 0,76 |
| FRPOLY/FLOAT | 0,25 | 0,57 | 1,28 | 0,25 | 0,88 | 0,83 | 0,84 |
| PUZZLE | 0,16 | 0,42 | 2,63 | 0,16 | 3,60 | 3,85 | 3,50 |
| TAK | 0,09 | 0,09 | 0,93 | 0,14 | 0,97 | 1,13 | 0,93 |
| CTAK | 0,21 | 0,32 | 1,43 | 0,21 | |||
| TRTAK | 0,07 | 0,07 | 0,89 | 0,14 | 0,98 | 0,92 | 0,93 |
| TAKL | 0,25 | 0,25 | 0,70 | 0,35 | 0,61 | 0,51 | 0,42 |
| STAK | 0,17 | 0,51 | 1,47 | 0,17 | |||
| FPRINT/UGLY | 0,38 | 1,97 | 0,90 | 0,38 | 3,25 | 2,85 | 2,90 |
| FPRINT/PRETTY | 0,61 | 2,03 | 10,15 | 0,61 | 21,52 | 21,17 | 19,73 |
| TRAVERSE | 0,59 | 0,76 | 2,04 | 0,59 | 3,04 | 2,86 | 2,70 |
| TRIANGLE | 0,42 | 0,56 | 1,77 | 0,42 | 3,93 | 3,45 | 3,70 |
| RICHARDS | 0,37 | 0,87 | 4,06 | 0,37 | 5,37 | 5,03 | 5,21 |
| FACTORIAL | 0,07 | 0,12 | 0,13 | 0,07 | 0,39 | 0,40 | 0,41 |
| FIB | 0,04 | 0,04 | 1,84 | 0,11 | 0,47 | 0,48 | 0,45 |
| FIB-RATIO | 0,02 | 0,03 | 0,05 | 0,02 | 0,08 | 0,07 | 0,07 |
| ACKERMANN | 0,64 | 0,64 | 4,25 | 2,12 | 7,57 | 7,68 | 7,13 |
| MANDELBROT/COMPLEX | 0,15 | 0,27 | 0,22 | 0,15 | 2,43 | 2,49 | 2,53 |
| MANDELBROT/DFLOAT | 0,00 | 0,03 | 0,81 | 0,00 | 2,26 | 2,39 | 2,11 |
| MRG32K3A | 0,39 | 4,11 | 1,30 | 0,39 | 8,16 | 8,87 | 7,76 |
| CRC40 | 0,28 | 1,20 | 8,61 | 0,28 | 5,12 | 5,49 | 5,18 |
| BIGNUM/ELEM-100-1000 | 0,03 | 0,56 | 0,03 | 0,03 | 0,04 | 0,03 | 0,04 |
| BIGNUM/ELEM-1000-100 | 0,02 | 3,33 | 0,02 | 0,05 | 0,03 | 0,02 | 0,02 |
| BIGNUM/ELEM-10000-1 | 0,02 | 3,52 | 0,02 | 0,03 | 0,02 | 0,02 | 0,02 |
| BIGNUM/PARI-100-10 | 0,00 | 0,34 | 0,00 | 0,01 | 0,00 | 0,00 | 0,00 |
| BIGNUM/PARI-200-5 | 0,01 | 9,56 | 0,01 | 0,02 | 0,01 | 0,01 | 0,01 |
| PI-DECIMAL/SMALL | 0,28 | 1,23 | 1,18 | 0,28 | 0,98 | 1,02 | 0,96 |
| PI-DECIMAL/BIG | 0,13 | 1,40 | 0,79 | 0,13 | 0,65 | 0,73 | 0,67 |
| PI-ATAN | 0,27 | 1,33 | 0,27 | 0,45 | 0,48 | 0,62 | 0,51 |
| PI-RATIOS | 0,40 | 3,68 | 0,40 | 0,60 | |||
| HASH-STRINGS | 0,10 | 2,64 | 0,44 | 0,10 | 0,42 | 0,48 | 0,43 |
| HASH-INTEGERS | 0,12 | 1,25 | 0,57 | 0,12 | 0,36 | 0,37 | 0,33 |
| SLURP-LINES | 1,00 | 10,83 | 8,00 | 1,00 | 10,34 | 11,11 | 10,64 |
| BOEHM-GC | 0,56 | 4,95 | 3,89 | 0,56 | 18,00 | 16,97 | 16,93 |
| DEFLATE-FILE | 0,08 | 0,16 | 1,59 | 0,08 | 0,96 | 0,87 | 0,87 |
| 1D-ARRAYS | 0,02 | 0,02 | 0,22 | 0,02 | 0,21 | 0,19 | 0,19 |
| 2D-ARRAYS | 0,20 | 0,66 | 4,53 | 0,20 | 5,45 | 5,38 | 5,45 |
| 3D-ARRAYS | 0,47 | 1,43 | 9,11 | 0,47 | 11,02 | 11,39 | 11,69 |
| BITVECTORS | 0,14 | 0,27 | 1,95 | 0,18 | 0,15 | 0,14 | 0,15 |
| BENCH-STRINGS | 0,28 | 0,79 | 2,72 | 0,97 | 0,29 | 0,33 | 0,28 |
| fill-strings/adjustable | 1,90 | 11,97 | 1,95 | 1,90 | 9,34 | 9,56 | 8,99 |
| STRING-CONCAT | 15,25 | 17,88 | 26,15 | 15,25 | 45,00 | 44,44 | 41,09 |
| SEARCH-SEQUENCE | 0,48 | 1,22 | 2,08 | 0,48 | 5,50 | 6,11 | 5,70 |
| CLOS/defclass | 0,17 | 0,18 | 0,25 | 0,17 | 2,00 | 2,03 | 1,78 |
| CLOS/defmethod | 0,10 | 0,10 | 0,26 | 0,92 | 4,15 | 3,72 | 3,27 |
| CLOS/instantiate | 0,36 | 2,09 | 5,00 | 0,36 | 4,23 | 4,12 | 3,92 |
| CLOS/simple-instantiate | 0,05 | 3,69 | 13,64 | 0,05 | 1,80 | 1,51 | 1,93 |
| CLOS/methodcalls | 1,50 | 1,50 | 2,12 | 2,70 | 2,89 | 2,90 | 3,12 |
| CLOS/method+after | 0,53 | 0,94 | 1,65 | 0,53 | 12,95 | 4,20 | 3,83 |
| CLOS/complex-methods | 0,41 | 0,54 | 0,78 | 0,41 | 0,98 | 1,05 | 0,94 |
| EQL-SPECIALIZED-FIB | 0,07 | 0,36 | 2,08 | 0,07 | 43,42 | 0,42 | 0,42 |