Duktape 2.3.0 performance measurement

Octane

Octane sub-scores and overall score. Higher is better, highest of 10 runs. Omits a few Octane tests which fail to run (see Duktape repo tests/octane).

Test duk.O2.230 duk.O2.220
Box2D 1005 994
CodeLoad 7386 7562
Crypto 311 297
DeltaBlue 232 232
EarleyBoyer 564 492
Gameboy 1818 1757
NavierStokes 775 779
PdfJS 910 918
RayTrace 427 429
Richards 181 178
Splay 1173 1163
SplayLatency 2753 3759
SCORE 823 830

Duktape microbenchmarks, comparison to 2.2.0

Baseline is duk.O2.220, compared to duk.O2.230. Lower is better, lowest of 5 runs.

duk.O2.230 duk.O2.220
test-add-fastint 0.63 0.71
test-add-float 0.61 0.66
test-add-int 0.63 0.67
test-add-nan-fastint 0.66 0.68
test-add-nan 0.61 0.66
test-add-string 11.83 11.63
test-arith-add 2.47 2.69
test-arith-add-string 1.16 1.17
test-arith-div 7.37 7.36
test-arith-mod 6.61 6.58
test-arith-mul 3.34 3.33
test-arith-sub 2.59 2.69
test-array-append 0.43 0.43
test-array-cons-list 0.47 0.48
test-array-foreach 2.12 2.09
test-array-literal-100 2.29 2.33
test-array-literal-20 0.54 0.54
test-array-literal-3 0.20 0.21
test-array-pop 1.42 1.47
test-array-push 1.72 1.72
test-array-read 1.65 1.67
test-array-read-lenloop 1.70 1.77
test-array-sort 2.99 3.07
test-array-write 1.60 1.60
test-array-write-length 1.42 1.45
test-assign-add 3.70 3.78
test-assign-addto 3.69 3.78
test-assign-addto-nan 1.06 1.08
test-assign-boolean 4.68 4.70
test-assign-const-int2 4.69 5.12
test-assign-const-int 2.38 2.41
test-assign-const 3.33 3.66
test-assign-literal 3.62 3.63
test-assign-proplhs-reg 2.50 2.47
test-assign-proprhs 2.66 2.62
test-assign-reg 2.74 2.73
test-base64-decode 1.37 1.47
test-base64-decode-whitespace 1.67 1.77
test-base64-encode 1.62 1.89
test-bitwise-ops 1.59 1.67
test-break-fast 0.89 0.91
test-break-slow 6.47 6.65
test-buffer-float32array-write 2.78 2.79
test-buffer-nodejs-read 2.10 2.14
test-buffer-nodejs-write 2.76 2.72
test-buffer-object-read 2.08 2.16
test-buffer-object-write 2.75 2.71
test-buffer-plain-read 1.76 1.74
test-buffer-plain-write 1.61 1.65
test-call-apply 2.14 2.18
test-call-basic-1 5.86 5.87
test-call-basic-2 5.88 5.87
test-call-basic-3 7.70 7.74
test-call-basic-4 15.65 16.52
test-call-bound-deep 2.43 2.42
test-call-bound 2.31 2.27
test-call-call 1.91 1.95
test-call-native 10.58 10.41
test-call-prop 3.66 3.59
test-call-proxy-apply-1 24.78 24.89
test-call-proxy-pass-1 12.97 13.06
test-call-reg 2.35 2.35
test-call-reg-new 4.14 4.11
test-call-tail-1 (0.98) 0.95
test-call-tail-2 (1.13) 1.07
test-call-var (5.38) 5.16
test-closure-inner-functions 1.01 0.99
test-compile-mandel 11.64 11.50
test-compile-mandel-nofrac 8.77 8.72
test-compile-short 4.37 4.50
test-compile-string-ascii 7.00 7.12
test-continue-fast 1.21 1.26
test-continue-slow 6.82 6.87
test-empty-loop 1.40 1.49
test-empty-loop-slowpath (0.93) 0.89
test-empty-loop-step3 1.50 1.58
test-enum-basic 2.73 2.73
test-equals-fastint 0.50 0.51
test-equals-nonfastint 0.58 0.57
test-error-create 1.34 1.34
test-fib-2 2.88 2.91
test-fib 5.48 5.34
test-func-bind 1.64 1.65
test-func-tostring 3.05 3.05
test-global-lookup 6.18 6.16
test-hello-world 0.00 0.00
test-hex-decode 3.83 3.83
test-hex-encode 2.78 2.74
test-jc-serialize-indented 2.61 2.60
test-jc-serialize 1.81 1.78
test-json-parse-hex 3.20 3.19
test-json-parse-integer 2.52 2.53
test-json-parse-number 4.60 4.71
test-json-parse-string 4.61 4.64
test-json-serialize-fastpath-loop 2.83 2.82
test-json-serialize-forceslow (7.59) 7.32
test-json-serialize-hex 1.36 1.37
test-json-serialize-indented-deep100 (1.25) 1.16
test-json-serialize-indented-deep25 2.60 2.61
test-json-serialize-indented-deep500 0.76 0.78
test-json-serialize-indented 4.55 4.54
test-json-serialize (5.56) 5.29
test-json-serialize-jsonrpc-message 1.80 1.86
test-json-serialize-nofrac 0.51 0.50
test-json-serialize-plainbuf 2.37 2.42
test-json-serialize-slowpath-loop 2.91 2.93
test-json-string-bench 2.53 2.50
test-json-string-stringify 5.31 5.36
test-jx-serialize-bufobj-forceslow 3.27 3.30
test-jx-serialize-bufobj 1.19 1.20
test-jx-serialize-indented 2.56 2.59
test-jx-serialize 1.74 1.74
test-mandel-iter10-normal 0.03 0.03
test-mandel-iter10-promise - -
test-mandel 2.49 2.70
test-mandel-promise - -
test-math-clz32 1.90 2.03
test-misc-1dcell 3.32 3.39
test-object-garbage-2 2.12 2.19
test-object-garbage (3.10) 2.90
test-object-literal-100 6.50 6.79
test-object-literal-20 1.38 1.42
test-object-literal-3 0.30 0.30
test-prop-read-1024 2.95 2.97
test-prop-read-16 2.96 2.97
test-prop-read-256 2.97 2.98
test-prop-read-32 2.99 2.97
test-prop-read-48 2.96 2.97
test-prop-read-4 (3.15) 3.02
test-prop-read-64 2.97 2.98
test-prop-read-8 2.98 2.98
test-prop-read-inherited 4.31 4.28
test-prop-read (3.20) 3.07
test-prop-write-1024 2.91 2.90
test-prop-write-16 2.93 2.93
test-prop-write-256 2.91 2.89
test-prop-write-32 2.91 2.90
test-prop-write-48 2.91 2.89
test-prop-write-4 2.83 2.97
test-prop-write-64 2.91 2.90
test-prop-write-8 2.91 2.89
test-prop-write 2.93 2.98
test-proxy-get 1.50 1.52
test-random 1.43 1.43
test-reflect-ownkeys-sorted 0.79 0.78
test-reflect-ownkeys-unsorted (0.83) 0.80
test-regexp-case-insensitive-compile 0.64 0.65
test-regexp-case-insensitive-execute 1.42 1.42
test-regexp-case-sensitive-compile 1.19 1.21
test-regexp-case-sensitive-execute 1.04 1.04
test-regexp-compile 1.64 1.64
test-regexp-execute 1.11 1.12
test-regexp-string-parse 5.55 5.73
test-reg-readwrite-object 3.11 3.09
test-reg-readwrite-plain 2.00 2.01
test-strict-equals-fastint 0.51 0.51
test-strict-equals-nonfastint 0.57 0.57
test-string-array-concat 4.54 4.58
test-string-arridx 1.18 1.19
test-string-charlen-ascii 1.08 1.05
test-string-charlen-nonascii 2.60 2.57
test-string-compare 1.83 1.92
test-string-decodeuri 3.54 3.53
test-string-encodeuri 3.59 3.56
test-string-garbage 2.63 2.75
test-string-intern-grow2 (0.54) 0.52
test-string-intern-grow 5.14 5.15
test-string-intern-grow-short2 3.06 3.06
test-string-intern-grow-short 3.11 3.12
test-string-intern-match 0.16 0.16
test-string-intern-match-short 1.23 1.25
test-string-intern-miss 0.27 0.27
test-string-intern-miss-short 1.49 1.49
test-string-literal-intern (2.72) 2.58
test-string-number-list (0.58) 0.56
test-string-plain-concat 0.41 0.40
test-string-scan-nonascii 3.02 3.02
test-string-uppercase 2.12 2.15
test-symbol-tostring 3.32 3.99
test-textdecoder-ascii 1.86 2.13
test-textdecoder-nonascii 2.63 2.64
test-textencoder-ascii 4.31 4.23
test-textencoder-nonascii 9.77 10.45
test-try-catch-nothrow 3.15 3.16
test-try-catch-throw (24.07) 22.88
test-try-finally-nothrow 3.71 3.74
test-try-finally-throw (32.48) 30.13

Setup

Measurement host:

Duktape is compiled with:

Note that: