-
Notifications
You must be signed in to change notification settings - Fork 145
Relative Compile Performance of clasp
Karsten Poeck edited this page Aug 24, 2020
·
13 revisions
In the following table one can find relative performance of clasp for some tasks:
Timings for version cclasp-boehm-0.4.2-2692-g00d68d383-cst
on macosx 10.14.6 (mojave)
CLASP_BUILD_MODE = 'faso'
USE_COMPILE_FILE_PARALLEL=True
Compile Task (real) | clasp(s) | ecl(s) | sbcl(s) | factor clasp/sbcl | factor clasp/ecl | factor ecl/sbcl |
---|---|---|---|---|---|---|
cl-bench gabriel | 35.0 | 6,170 | 0.711 | 49.23 | 5.67 | 8.68 |
asdf | 123.399 | 20.145 | 5.872 | 21.01 | 6.13 | 3.43 |
cl-jpeg | 119.012 | 128.09 | 1.531 | 77.73 | 0.93 | 83.62 |
ironclad | 5355.203 | 400.671 | 53.792 | 99.55 | 13.37 | 7.45 |
clx | 1241.959 | 187.031 | 14.933 | 83.17 | 6.61 | 12.52 |
mcclim | 4366.509 | error in cl-unicode | 66.045 | 66.11 | missing | missing |
Note that e.g. :mcclim depends on :clx and :cl-jpeg, so that order of timings is important
Commands used (in the same session 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 :mcclim))
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 optimisation settings!
- NOGC
Don't garbage collect bignums in boehm
- P =
(setq cmp:*compile-file-parallel* t)
- S =
(setq cmp:*compile-file-parallel* nil)
- ET =
(setq CLASP-CLEAVIR::*ELIMINATE-TYPEQ* t)
- NT =
(setq CLASP-CLEAVIR::*ELIMINATE-TYPEQ* nil)
- NOGC
Benchmarked on: x86_64 Darwin Kernel Version 18.7.0: Thu Jun 18 20:50:10 PDT 2020; root:xnu-4903.278.43~1/RELEASE_X86_64 karsten-poecks-macbook-pro.local
Benchmark | Best | ECL 20.4.24 | clasp cclasp-boehm-0.4.2-2942-gdaa485cdb-cst-NOGC-P-ET | clasp cclasp-boehm-0.4.2-2942-gdaa485cdb-cst-NOGC-P-NT | clasp cclasp-boehm-0.4.2-2942-gdaa485cdb-cst-NOGC-S-ET | clasp cclasp-boehm-0.4.2-2942-gdaa485cdb-cst-NOGC-S-NT | clasp cclasp-boehm-0.4.2-2942-gdaa485cdb-cst-P-ET | clasp cclasp-boehm-0.4.2-2942-gdaa485cdb-cst-P-NT | clasp cclasp-boehm-0.4.2-2942-gdaa485cdb-cst-S-ET | clasp cclasp-boehm-0.4.2-2942-gdaa485cdb-cst-S-NT | clasp cclasp-mps-0.4.2-2942-gdaa485cdb-cst-P-ET | clasp cclasp-mps-0.4.2-2942-gdaa485cdb-cst-P-NT | clasp cclasp-mps-0.4.2-2942-gdaa485cdb-cst-S-ET | clasp cclasp-mps-0.4.2-2942-gdaa485cdb-cst-S-NT |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Date | 20200823T1735 | 20200823T2328 | 20200824T1943 | 20200823T2346 | 20200823T2356 | 20200823T1440 | 20200823T1454 | 20200823T1512 | 20200823T1528 | 20200823T1554 | 20200823T1611 | 20200823T1702 | 20200823T1720 | |
COMPILER | 1,38 | 1,38 | 36,17 | 30,72 | 67,65 | 59,29 | 32,79 | 30,95 | 71,40 | 69,22 | 95,83 | 74,00 | 125,84 | 88,65 |
LOAD-FASL | 0,13 | 0,13 | 2,17 | 2,23 | 0,71 | 0,71 | 2,25 | 2,34 | 0,85 | 0,80 | 3,15 | 3,54 | 1,00 | 0,91 |
SUM-PERMUTATIONS | 1,13 | 2,03 | 1,85 | 2,04 | 1,57 | 1,95 | 1,13 | 2,16 | 1,67 | 2,08 | 5,96 | 6,15 | 5,61 | 5,00 |
WALK-LIST/SEQ | 0,01 | 0,01 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 | 0,01 | 0,02 | 0,02 | 0,01 | 0,01 | 0,01 | 0,01 |
WALK-LIST/MESS | 0,33 | 0,33 | ||||||||||||
BOYER | 0,61 | 0,61 | 0,68 | 0,83 | 0,64 | 0,89 | 0,63 | 0,84 | 0,61 | 0,86 | 1,92 | 1,83 | 1,83 | 2,21 |
BROWSE | 0,23 | 0,23 | 0,43 | 0,43 | 0,45 | 0,67 | 0,44 | 0,44 | 0,47 | 0,68 | 1,69 | 1,59 | 1,58 | 1,43 |
DDERIV | 0,57 | 0,57 | 1,68 | 1,74 | 1,42 | 1,79 | 1,31 | 1,55 | 1,61 | 1,82 | 5,13 | 5,12 | 4,73 | 4,13 |
DERIV | 0,59 | 0,59 | 1,79 | 1,87 | 1,59 | 1,92 | 1,44 | 2,04 | 1,80 | 1,93 | 5,52 | 5,64 | 5,30 | 4,78 |
DESTRUCTIVE | 0,33 | 0,39 | 0,38 | 0,34 | 0,35 | 0,36 | 0,34 | 0,34 | 0,33 | 0,37 | 1,36 | 1,36 | 1,34 | 1,30 |
DIV2-TEST-1 | 0,75 | 0,75 | 1,93 | 2,05 | 1,65 | 2,23 | 1,59 | 1,94 | 1,52 | 2,18 | 7,12 | 7,08 | 6,89 | 6,74 |
DIV2-TEST-2 | 1,12 | 1,12 | 2,01 | 2,16 | 1,82 | 2,46 | 1,74 | 2,21 | 1,57 | 2,43 | 7,24 | 7,76 | 6,71 | 6,95 |
FFT | 0,45 | 1,46 | 0,50 | 0,53 | 0,47 | 0,50 | 0,46 | 0,53 | 0,45 | 0,52 | 0,47 | 0,52 | 0,51 | 0,52 |
FRPOLY/FIXNUM | 0,59 | 1,20 | 0,62 | 0,66 | 0,59 | 0,61 | 0,65 | 0,65 | 0,60 | 0,67 | 1,58 | 1,59 | 1,52 | 1,64 |
FRPOLY/BIGNUM | 0,46 | 0,46 | 0,83 | 0,80 | 0,76 | 1,00 | 57,21 | 56,03 | 53,63 | 54,43 | 3,57 | 3,77 | 3,71 | 3,28 |
FRPOLY/FLOAT | 0,59 | 1,26 | 0,62 | 0,67 | 0,59 | 0,59 | 0,71 | 0,75 | 0,68 | 0,66 | 1,60 | 1,59 | 1,53 | 1,53 |
PUZZLE | 2,61 | 2,61 | 3,57 | 3,32 | 3,25 | 3,20 | 3,33 | 3,42 | 2,93 | 2,77 | 3,31 | 3,43 | 3,40 | 3,07 |
TAK | 0,51 | 0,87 | 0,54 | 0,54 | 0,54 | 0,55 | 0,51 | 0,58 | 0,55 | 0,56 | 0,52 | 0,62 | 0,53 | 0,54 |
CTAK | 1,28 | 1,28 | ||||||||||||
TRTAK | 0,50 | 0,95 | 0,55 | 0,54 | 0,52 | 0,54 | 0,50 | 0,59 | 0,52 | 0,60 | 0,51 | 0,56 | 0,53 | 0,59 |
TAKL | 0,45 | 0,69 | 0,50 | 0,45 | 0,48 | 0,53 | 0,47 | 0,51 | 0,48 | 0,48 | 0,48 | 0,51 | 0,49 | 0,53 |
STAK | 1,43 | 1,43 | 2,18 | 2,15 | 2,07 | 2,04 | 2,06 | 2,41 | 2,34 | 2,07 | 2,19 | 2,42 | 1,99 | 1,87 |
FPRINT/UGLY | 0,92 | 0,92 | 2,71 | 2,67 | 2,65 | 2,64 | 2,61 | 2,74 | 2,66 | 2,59 | 3,22 | 3,17 | 2,89 | 3,68 |
FPRINT/PRETTY | 9,37 | 9,37 | 19,12 | 17,66 | 17,56 | 17,54 | 18,34 | 17,78 | 17,50 | 17,33 | 18,88 | 20,47 | 19,68 | 20,27 |
TRAVERSE | 1,64 | 1,76 | 1,94 | 1,74 | 1,72 | 1,84 | 1,73 | 1,94 | 1,76 | 1,64 | 1,73 | 1,79 | 1,90 | 1,95 |
TRIANGLE | 1,54 | 1,54 | 1,78 | 1,81 | 1,70 | 1,77 | 1,61 | 1,70 | 1,68 | 1,85 | 1,57 | 1,71 | 1,74 | 1,77 |
RICHARDS | 3,49 | 3,49 | 4,17 | 3,91 | 3,78 | 3,87 | 3,86 | 4,22 | 4,12 | 4,32 | 3,84 | 4,40 | 4,06 | 3,99 |
FACTORIAL | 0,14 | 0,14 | 0,40 | 0,39 | 0,38 | 0,39 | 17,57 | 18,07 | 16,29 | 15,83 | 1,16 | 1,36 | 1,22 | 1,32 |
FIB | 0,08 | 1,64 | 0,09 | 0,08 | 0,09 | 0,09 | 0,10 | 0,09 | 0,09 | 0,09 | 0,09 | 0,08 | 0,09 | 0,09 |
FIB-RATIO | 0,05 | 0,05 | 0,36 | 0,36 | 0,34 | 0,35 | 8,19 | 7,89 | 7,51 | 7,18 | 0,67 | 0,70 | 0,66 | 0,71 |
ACKERMANN | 3,18 | 3,77 | 3,57 | 3,28 | 3,49 | 3,52 | 3,18 | 3,34 | 3,52 | 3,42 | 3,23 | 3,43 | 3,44 | 3,37 |
MANDELBROT/COMPLEX | 0,22 | 0,22 | 2,14 | 2,35 | 2,09 | 2,65 | 1,72 | 2,22 | 1,73 | 2,80 | 10,20 | 11,06 | 10,00 | 8,71 |
MANDELBROT/DFLOAT | 0,82 | 0,82 | 1,54 | 1,84 | 1,63 | 2,21 | 1,29 | 1,63 | 1,16 | 2,45 | 8,36 | 9,11 | 7,97 | 7,83 |
MRG32K3A | 1,28 | 1,28 | 5,83 | 6,65 | 5,76 | 7,82 | 4,25 | 6,05 | 4,64 | 9,05 | 27,69 | 29,93 | 27,63 | 25,71 |
CRC40 | 2,80 | 8,42 | 3,18 | 3,01 | 3,00 | 3,13 | 2,93 | 2,93 | 3,26 | 3,41 | 2,80 | 3,34 | 3,13 | 3,14 |
BIGNUM/ELEM-100-1000 | 0,03 | 0,03 | 0,10 | 0,10 | 0,10 | 0,10 | 4,67 | 4,25 | 4,08 | 4,20 | 0,16 | 0,17 | 0,17 | 0,16 |
BIGNUM/ELEM-1000-100 | 0,02 | 0,02 | 0,03 | 0,03 | 0,03 | 0,03 | 0,49 | 0,49 | 0,43 | 0,44 | 0,03 | 0,04 | 0,04 | 0,04 |
BIGNUM/ELEM-10000-1 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 | 0,02 |
BIGNUM/PARI-100-10 | 0,00 | 0,00 | 0,01 | 0,01 | 0,01 | 0,01 | 0,48 | 0,47 | 0,40 | 0,44 | 0,02 | 0,02 | 0,02 | 0,02 |
BIGNUM/PARI-200-5 | 0,01 | 0,01 | 0,02 | 0,02 | 0,02 | 0,02 | 0,48 | 0,45 | 0,42 | 0,43 | 0,03 | 0,03 | 0,03 | 0,04 |
PI-DECIMAL/SMALL | 1,07 | 1,07 | 1,78 | 1,64 | 1,67 | 1,73 | 19,98 | 20,43 | 19,61 | 19,97 | 3,08 | 3,27 | 3,39 | 2,80 |
PI-DECIMAL/BIG | 0,73 | 0,73 | 0,87 | 0,78 | 0,82 | 0,83 | 2,80 | 2,76 | 2,68 | 2,54 | 0,82 | 0,86 | 0,91 | 0,95 |
PI-ATAN | 0,23 | 0,23 | 0,79 | 0,73 | 0,74 | 0,97 | 33,12 | 32,09 | 31,75 | 30,92 | 2,85 | 2,98 | 3,06 | 3,11 |
PI-RATIOS | 0,34 | 0,34 | 0,96 | 0,85 | 0,89 | 0,90 | 23,12 | 21,83 | 23,44 | 21,93 | 2,47 | 2,58 | 2,55 | 2,70 |
HASH-STRINGS | 0,33 | 0,40 | 0,37 | 0,33 | 0,34 | 0,33 | 0,39 | 0,38 | 0,39 | 0,38 | 0,50 | 0,52 | 0,59 | 1,14 |
HASH-INTEGERS | 0,29 | 0,49 | 0,33 | 0,29 | 0,31 | 0,31 | 0,29 | 0,29 | 0,29 | 0,31 | 0,45 | 0,48 | 0,47 | 0,48 |
SLURP-LINES | 7,11 | 7,11 | 9,50 | 8,67 | 9,36 | 9,48 | 8,19 | 8,50 | 8,89 | 9,71 | 18,68 | 18,86 | 18,92 | 18,45 |
BOEHM-GC | 4,02 | 4,02 | 15,04 | 14,87 | 13,74 | 14,41 | 12,52 | 16,48 | 13,59 | 15,35 | 64,27 | 69,55 | 65,46 | 60,44 |
DEFLATE-FILE | 0,55 | 1,37 | 0,66 | 0,57 | 0,55 | 0,57 | 0,61 | 0,57 | 0,69 | 0,62 | 0,57 | 0,67 | 0,60 | 0,68 |
1D-ARRAYS | 0,06 | 0,16 | 0,07 | 0,06 | 0,06 | 0,06 | 0,07 | 0,06 | 0,08 | 0,07 | 0,06 | 0,07 | 0,07 | 0,06 |
2D-ARRAYS | 4,12 | 4,12 | 7,12 | 6,68 | 9,65 | 7,17 | 8,25 | 9,54 | 9,48 | 7,21 | 5,90 | 8,61 | 8,01 | 5,73 |
3D-ARRAYS | 8,46 | 8,46 | 19,20 | 17,92 | 17,99 | 14,30 | 15,00 | 19,31 | 17,68 | 21,40 | 11,92 | 17,04 | 13,42 | 16,13 |
BITVECTORS | 0,14 | 1,85 | 0,43 | 0,39 | 0,16 | 0,14 | 0,14 | 0,34 | 0,17 | 0,15 | 2,04 | 2,60 | 2,03 | 1,90 |
BENCH-STRINGS | 0,28 | 2,57 | 0,32 | 0,30 | 0,29 | 0,29 | 0,28 | 0,28 | 0,37 | 0,30 | 0,31 | 0,35 | 0,33 | 0,33 |
fill-strings/adjustable | 1,93 | 1,93 | 7,35 | 7,08 | 6,85 | 6,12 | 6,76 | 6,48 | 8,39 | 5,96 | 15,00 | 12,69 | 13,18 | 11,91 |
STRING-CONCAT | 23,51 | 23,51 | 31,43 | 29,89 | 27,73 | 27,62 | 33,33 | 28,48 | 36,19 | 29,80 | 68,44 | 145,73 | 95,29 | 67,28 |
SEARCH-SEQUENCE | 1,50 | 1,50 | 4,63 | 4,40 | 3,98 | 3,97 | 3,79 | 5,03 | 4,28 | 3,75 | 14,20 | 33,85 | 12,39 | 13,32 |
CLOS/defclass | 0,23 | 0,23 | 3,73 | 3,38 | 3,34 | 3,05 | 3,47 | 2,88 | 3,69 | 2,93 | 7,38 | 13,56 | 7,32 | 6,35 |
CLOS/defmethod | 0,22 | 0,22 | 7,12 | 6,45 | 6,31 | 5,86 | 6,91 | 5,83 | 6,68 | 5,83 | 13,46 | 27,66 | 15,18 | 12,06 |
CLOS/instantiate | 2,96 | 4,79 | 3,35 | 3,01 | 3,14 | 3,12 | 3,14 | 3,00 | 3,32 | 2,96 | 5,26 | 12,87 | 5,45 | 6,69 |
CLOS/simple-instantiate | 0,77 | 13,75 | 1,44 | 1,48 | 1,26 | 1,38 | 0,77 | 1,44 | 1,35 | 1,10 | 6,20 | 15,14 | 6,41 | 6,83 |
CLOS/methodcalls | 2,08 | 2,08 | 5,45 | 4,83 | 4,80 | 5,04 | 208,85 | 215,97 | 225,81 | 226,86 | 20,69 | 48,92 | 22,40 | 21,60 |
CLOS/method+after | 1,58 | 1,58 | 15,07 | 13,21 | 13,86 | 13,50 | 94,11 | 109,89 | 128,82 | 96,84 | 27,98 | 63,33 | 27,64 | 24,74 |
CLOS/complex-methods | 0,73 | 0,76 | 0,85 | 0,82 | 0,78 | 0,79 | 0,73 | 1,07 | 1,98 | 0,95 | 0,81 | 1,73 | 0,83 | 0,87 |
EQL-SPECIALIZED-FIB | 2,02 | 2,02 | 33,37 | 34,14 | 30,70 | 31,34 | 33,05 | 41,01 | 39,68 | 38,70 | 100,73 | 167,30 | 92,48 | 100,65 |