Duktape 2.1.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). Overall score for MuJS and Jerryscript omitted because some sub-scores are missing so an overall score would not be comparable.

Test duk-pgo.O2.210 duk.O2.210 duk.O2.200 duk.O2.150 mujs jerry
Box2D 1180 830 756 586 311 -
CodeLoad 6127 6310 5676 4579 - -
Crypto 285 242 185 183 - 193
DeltaBlue 295 192 178 138 78 166
EarleyBoyer 530 529 342 291 - -
Gameboy 2197 1491 1324 1119 - -
NavierStokes 778 687 557 503 - -
PdfJS 831 754 390 352 - -
RayTrace 427 352 241 209 330 234
Richards 220 150 144 112 115 166
Splay 1083 930 696 635 29 -
SplayLatency 2813 4240 3344 2288 266 -
SCORE 844 724 568 475 - -

Duktape microbenchmarks, comparison to other engines

Baseline is duk.O2.210, compared to a few other engines. Lower is better, lowest of 5 runs.

duk.O2.210 mujs jerry
test-add-fastint.js 0.73 (4.38) (2.95)
test-add-float.js 0.70 (4.38) (4.16)
test-add-nan-fastint.js 0.76 (4.38) (3.50)
test-add-nan.js 0.70 (4.40) (4.17)
test-arith-add.js 2.96 (17.48) (16.58)
test-arith-div.js 7.94 (12.20) (20.96)
test-arith-mod.js 7.36 (14.76) (25.26)
test-arith-mul.js 4.00 (12.03) (16.46)
test-arith-sub.js 2.98 (12.13) (16.91)
test-array-append.js 0.52 (51.66) -
test-array-cons-list.js 0.72 (9.07) (2.19)
test-array-foreach.js 2.60 (3.56) 1.65
test-array-literal.js 1.10 (60.52) 0.88
test-array-pop.js 2.06 (51.36) (7.08)
test-array-push.js 2.30 (8.55) (4.06)
test-array-read-lenloop.js 2.16 (123.04) (4.57)
test-array-read.js 2.03 (232.08) (5.70)
test-array-sort.js 3.35 - (4.26)
test-array-write-length.js 1.81 (3.70) (2.70)
test-array-write.js 1.97 (248.86) (6.51)
test-assign-add.js 4.21 (37.42) (25.02)
test-assign-add.js 4.20 (37.40) (25.02)
test-assign-addto-nan.js 1.20 (8.04) (6.45)
test-assign-addto.js 4.20 (38.39) (30.42)
test-assign-boolean.js 5.16 (10.36) (20.73)
test-assign-const-int.js 3.01 (10.56) (12.80)
test-assign-const-int2.js 6.08 (10.91) (12.98)
test-assign-const.js 5.18 (10.88) (19.16)
test-assign-literal.js 4.21 (10.95) (23.22)
test-assign-proplhs-reg.js 2.90 2.70 (5.58)
test-assign-proprhs.js 3.05 2.67 (3.99)
test-assign-reg.js 3.42 (9.68) (17.14)
test-base64-decode-whitespace.js 2.20 - -
test-base64-decode.js 1.73 - -
test-base64-encode.js 1.86 - -
test-bitwise-ops.js 2.04 (14.97) (21.76)
test-break-fast.js 1.54 1.26 1.40
test-break-slow.js 8.29 2.82 4.57
test-buffer-nodejs-read.js 2.50 - -
test-buffer-nodejs-write.js 3.28 - -
test-buffer-object-read.js 2.53 - -
test-buffer-object-write.js 3.28 - -
test-buffer-plain-read.js 2.04 - -
test-buffer-plain-write.js 2.00 - -
test-call-basic-1.js 7.69 7.30 (10.44)
test-call-basic-2.js 7.70 5.28 (9.14)
test-call-basic-3.js 9.85 (13.68) (15.58)
test-call-basic-4.js 19.48 (37.95) (39.20)
test-call-native.js 12.95 (17.36) 8.52
test-call-prop.js 4.43 3.14 (4.68)
test-call-reg-new.js 5.90 3.00 3.38
test-call-reg.js 2.99 2.48 (3.84)
test-call-var.js 6.20 4.79 4.32
test-closure-inner-functions.js 1.33 0.66 0.26
test-compile-mandel-nofrac.js 10.40 6.50 2.41
test-compile-mandel.js 13.47 6.49 2.40
test-compile-short.js 5.77 2.43 0.98
test-compile-string-ascii.js 7.06 6.99 -
test-continue-fast.js 2.06 (2.20) (2.56)
test-continue-slow.js 8.82 3.65 6.56
test-empty-loop-slowpath.js 1.10 1.09 0.71
test-empty-loop.js 1.84 (6.38) (3.60)
test-enum-basic.js 3.35 0.71 1.17
test-equals-fastint.js 0.62 (2.59) (3.36)
test-equals-nonfastint.js 0.66 (2.58) (4.72)
test-error-create.js 1.71 (5.12) 0.82
test-fib.js 6.34 3.60 5.71
test-global-lookup.js 6.79 4.51 2.74
test-hello-world.js 0.00 0.00 0.00
test-hex-decode.js 4.00 - -
test-hex-encode.js 3.08 - -
test-jc-serialize-indented.js 3.82 - -
test-jc-serialize.js 2.39 - -
test-json-parse-hex.js 3.60 - -
test-json-parse-integer.js 2.87 (23.34) -
test-json-parse-number.js 5.22 2.68 -
test-json-parse-string.js 5.17 (48.75) -
test-json-serialize-fastpath-loop.js 3.62 (13.40) (582.05)
test-json-serialize-forceslow.js 9.78 2.39 9.10
test-json-serialize-hex.js 1.51 - -
test-json-serialize-indented-deep100.js 1.43 (1.62) (147.40)
test-json-serialize-indented-deep25.js 3.60 (11.21) (265.65)
test-json-serialize-indented-deep500.js 0.93 - -
test-json-serialize-indented.js 6.12 (16.42) (108.06)
test-json-serialize-jsonrpc-message.js 3.27 - -
test-json-serialize-nofrac.js 0.66 (1.72) (7.26)
test-json-serialize-plainbuf.js 2.48 - -
test-json-serialize-slowpath-loop.js 3.72 - (6.34)
test-json-serialize.js 6.48 2.38 (9.04)
test-json-string-bench.js 3.18 (53.90) -
test-json-string-stringify.js 10.16 (11.77) -
test-jx-serialize-bufobj-forceslow.js 4.47 - -
test-jx-serialize-bufobj.js 1.71 - -
test-jx-serialize-indented.js 3.45 - -
test-jx-serialize.js 2.24 - -
test-mandel.js 3.15 (15.26) (14.52)
test-object-garbage-2.js 3.62 (54.81) 3.29
test-object-garbage.js 3.31 2.70 2.77
test-object-literal.js 2.53 (4.43) 2.29
test-prop-read-1024.js 3.64 (6.74) (4.46)
test-prop-read-16.js 3.69 (4.55) (4.44)
test-prop-read-256.js 3.62 (8.29) (4.42)
test-prop-read-32.js 3.65 (5.58) (4.43)
test-prop-read-4.js 3.54 (3.99) (4.41)
test-prop-read-48.js 3.64 (6.52) (4.42)
test-prop-read-64.js 3.62 (6.56) (4.43)
test-prop-read-8.js 3.75 (5.00) (4.46)
test-prop-read.js 3.83 (4.03) (4.54)
test-prop-write-1024.js 3.32 (10.37) (5.29)
test-prop-write-16.js 3.30 (4.42) (5.30)
test-prop-write-256.js 3.38 (8.24) (5.30)
test-prop-write-32.js 3.30 (5.59) (5.32)
test-prop-write-4.js 3.53 (3.95) (5.28)
test-prop-write-48.js 3.33 (6.50) (5.26)
test-prop-write-64.js 3.31 (6.51) (5.31)
test-prop-write-8.js 3.30 (4.90) (5.27)
test-prop-write.js 3.65 (3.95) (5.29)
test-random.js 2.26 1.12 2.00
test-reg-readwrite-object.js 3.73 (8.57) (15.01)
test-reg-readwrite-plain.js 2.51 (8.44) (12.16)
test-regexp-case-insensitive.js 28.48 0.00 0.00
test-regexp-compile.js 2.08 1.62 0.46
test-regexp-execute.js 1.49 (1.84) 1.25
test-regexp-string-parse.js 6.41 - -
test-strict-equals-fastint.js 0.63 (2.66) (3.46)
test-strict-equals-nonfastint.js 0.66 (2.65) (4.50)
test-string-array-concat.js 5.31 (270.24) -
test-string-arridx.js 1.69 1.02 1.65
test-string-charlen-ascii.js 1.17 (5.14) 0.80
test-string-charlen-nonascii.js 3.07 (7.73) 0.54
test-string-compare.js 2.40 (790.20) -
test-string-decodeuri.js 4.51 2.26 -
test-string-encodeuri.js 4.68 3.97 -
test-string-garbage.js 4.04 1.90 2.08
test-string-intern-grow-short.js 3.78 - -
test-string-intern-grow-short2.js 3.73 - -
test-string-intern-grow.js 4.09 - -
test-string-intern-grow2.js 0.64 - -
test-string-intern-match-short.js 1.81 - -
test-string-intern-match.js 0.22 - -
test-string-intern-miss-short.js 2.16 - -
test-string-intern-miss.js 0.34 - -
test-string-number-list.js 0.66 (7.78) -
test-string-plain-concat.js 0.46 (1.04) (0.54)
test-string-scan-nonascii.js 4.25 (50.74) (15.79)
test-string-uppercase.js 2.82 (4.86) -
test-textdecoder-ascii.js 2.65 - -
test-textdecoder-nonascii.js 2.78 - -
test-textencoder-ascii.js 5.48 - -
test-textencoder-nonascii.js 11.26 - -
test-try-catch-nothrow.js 3.32 2.42 (3.58)
test-try-catch-throw.js 30.96 23.70 16.34
test-try-finally-nothrow.js 4.02 2.29 4.06
test-try-finally-throw.js 46.12 26.29 19.72

Duktape microbenchmarks, pruned

Baseline is duk.O2.200, compared to duk.O2.210, i.e. improvement or regression from 2.0.x -> 2.1.x. Lower is better, lowest of 5 runs.

duk.O2.210 duk.O2.200 duk.O2.150 mujs jerry lua python
test-add-fastint.js 0.73 0.85 0.91 4.38 2.95 - -
test-add-float.js 0.70 0.87 0.94 4.38 4.16 - -
test-add-nan-fastint.js 0.76 0.90 1.00 4.38 3.50 - -
test-add-nan.js 0.70 0.87 0.91 4.40 4.17 - -
test-arith-add.js 2.96 3.43 3.66 17.48 16.58 - -
test-arith-div.js 7.94 8.38 9.19 12.20 20.96 - -
test-arith-mod.js 7.36 7.50 8.73 14.76 25.26 - -
test-arith-mul.js 4.00 4.36 5.14 12.03 16.46 - -
test-arith-sub.js 2.98 3.50 3.95 12.13 16.91 - -
test-array-append.js 0.52 0.72 0.76 51.66 - - -
test-array-cons-list.js 0.72 0.96 2.50 9.07 2.19 - -
test-array-foreach.js 2.60 2.78 2.92 3.56 1.65 - -
test-array-literal.js 1.10 1.76 1.98 60.52 0.88 - -
test-array-pop.js 2.06 2.45 8.08 51.36 7.08 1.16 1.18
test-array-push.js 2.30 2.74 5.38 8.55 4.06 1.02 0.60
test-array-read-lenloop.js 2.16 2.41 2.75 123.04 4.57 - -
test-array-read.js 2.03 2.26 2.60 232.08 5.70 1.12 2.18
test-array-sort.js 3.35 3.48 3.51 - 4.26 - -
test-array-write-length.js 1.81 2.00 2.94 3.70 2.70 - -
test-array-write.js 1.97 2.24 3.01 248.86 6.51 1.34 3.02
test-assign-add.js 4.21 5.36 6.04 37.42 25.02 3.49 15.83
test-assign-add.js 4.20 5.36 6.04 37.40 25.02 3.51 15.87
test-assign-addto-nan.js 1.20 1.45 1.64 8.04 6.45 - -
test-assign-addto.js 4.20 5.36 6.04 38.39 30.42 3.50 17.13
test-assign-boolean.js 5.16 5.20 5.22 10.36 20.73 - -
test-assign-const-int.js 3.01 4.18 3.08 10.56 12.80 2.56 6.03
test-assign-const-int2.js 6.08 8.52 10.18 10.91 12.98 - -
test-assign-const.js 5.18 5.77 4.50 10.88 19.16 2.55 6.06
test-assign-literal.js 4.21 5.44 4.76 10.95 23.22 2.74 13.56
test-assign-proplhs-reg.js 2.90 3.19 3.92 2.70 5.58 - -
test-assign-proprhs.js 3.05 3.21 4.30 2.67 3.99 - -
test-assign-reg.js 3.42 4.80 3.35 9.68 17.14 2.52 5.96
test-base64-decode-whitespace.js (2.20) 2.01 - - - - 8.63
test-base64-decode.js (1.73) 1.66 - - - - 8.62
test-base64-encode.js 1.86 1.87 - - - - 20.42
test-bitwise-ops.js 2.04 2.38 2.46 14.97 21.76 - -
test-break-fast.js 1.54 1.81 1.57 1.26 1.40 - -
test-break-slow.js 8.29 9.37 8.93 2.82 4.57 - -
test-buffer-nodejs-read.js 2.50 2.81 2.80 - - - -
test-buffer-nodejs-write.js 3.28 3.47 3.40 - - - -
test-buffer-object-read.js 2.53 2.81 2.81 - - - -
test-buffer-object-write.js 3.28 3.50 3.40 - - - -
test-buffer-plain-read.js 2.04 2.37 2.34 - - - -
test-buffer-plain-write.js 2.00 2.29 2.14 - - - -
test-call-basic-1.js 7.69 8.73 9.95 7.30 10.44 2.27 6.16
test-call-basic-2.js 7.70 8.66 10.00 5.28 9.14 - -
test-call-basic-3.js 9.85 10.94 16.15 13.68 15.58 - -
test-call-basic-4.js 19.48 21.02 38.63 37.95 39.20 - -
test-call-native.js 12.95 13.88 14.60 17.36 8.52 - -
test-call-prop.js 4.43 4.90 6.02 3.14 4.68 - -
test-call-reg-new.js 5.90 6.99 7.24 3.00 3.38 - -
test-call-reg.js 2.99 3.37 3.84 2.48 3.84 - -
test-call-var.js 6.20 8.64 8.58 4.79 4.32 - -
test-closure-inner-functions.js 1.33 1.80 2.59 0.66 0.26 - -
test-compile-mandel-nofrac.js 10.40 11.36 14.08 6.50 2.41 - -
test-compile-mandel.js 13.47 14.45 16.91 6.49 2.40 - -
test-compile-short.js 5.77 7.02 9.67 2.43 0.98 - -
test-compile-string-ascii.js 7.06 7.12 9.93 6.99 - - -
test-continue-fast.js 2.06 2.24 2.06 2.20 2.56 - -
test-continue-slow.js 8.82 9.92 9.30 3.65 6.56 - -
test-empty-loop-slowpath.js 1.10 1.77 2.38 1.09 0.71 - -
test-empty-loop.js 1.84 2.40 2.34 6.38 3.60 1.14 5.13
test-enum-basic.js 3.35 4.33 4.92 0.71 1.17 - -
test-equals-fastint.js 0.62 0.72 1.23 2.59 3.36 - -
test-equals-nonfastint.js 0.66 0.76 1.33 2.58 4.72 - -
test-error-create.js 1.71 2.30 3.64 5.12 0.82 - -
test-fib.js 6.34 7.57 8.34 3.60 5.71 1.43 2.91
test-global-lookup.js 6.79 8.96 11.60 4.51 2.74 - -
test-hello-world.js 0.00 0.00 0.00 0.00 0.00 0.00 0.00
test-hex-decode.js 4.00 3.98 4.04 - - - 13.45
test-hex-encode.js 3.08 3.29 - - - - 1.68
test-jc-serialize-indented.js (3.82) 3.69 3.98 - - - -
test-jc-serialize.js 2.39 2.48 2.78 - - - -
test-json-parse-hex.js 3.60 3.60 - - - - -
test-json-parse-integer.js 2.87 4.06 4.19 23.34 - - 0.08
test-json-parse-number.js 5.22 5.26 5.35 2.68 - - 0.40
test-json-parse-string.js 5.17 5.68 5.43 48.75 - - -
test-json-serialize-fastpath-loop.js 3.62 3.99 4.03 13.40 582.05 - -
test-json-serialize-forceslow.js 9.78 9.98 11.98 2.39 9.10 - -
test-json-serialize-hex.js 1.51 1.52 - - - - -
test-json-serialize-indented-deep100.js 1.43 1.93 2.72 1.62 147.40 - -
test-json-serialize-indented-deep25.js 3.60 3.56 3.76 11.21 265.65 - -
test-json-serialize-indented-deep500.js 0.93 1.27 1.61 - - - -
test-json-serialize-indented.js 6.12 6.67 7.16 16.42 108.06 - -
test-json-serialize-jsonrpc-message.js 3.27 3.32 3.32 - - - -
test-json-serialize-nofrac.js 0.66 0.75 0.79 1.72 7.26 - -
test-json-serialize-plainbuf.js 2.48 30.95 0.07 - - - -
test-json-serialize-slowpath-loop.js 3.72 4.65 6.60 - 6.34 - -
test-json-serialize.js 6.48 6.49 6.62 2.38 9.04 - 0.65
test-json-string-bench.js 3.18 3.85 5.59 53.90 - - -
test-json-string-stringify.js 10.16 10.36 10.44 11.77 - - 0.53
test-jx-serialize-bufobj-forceslow.js 4.47 5.05 6.17 - - - -
test-jx-serialize-bufobj.js 1.71 1.73 1.79 - - - -
test-jx-serialize-indented.js 3.45 3.51 3.80 - - - -
test-jx-serialize.js 2.24 2.36 2.62 - - - -
test-mandel.js 3.15 3.73 4.37 15.26 14.52 1.96 -
test-object-garbage-2.js 3.62 5.43 5.38 54.81 3.29 - -
test-object-garbage.js 3.31 5.05 5.49 2.70 2.77 4.15 0.85
test-object-literal.js 2.53 3.21 2.88 4.43 2.29 - -
test-prop-read-1024.js 3.64 4.20 5.26 6.74 4.46 - -
test-prop-read-16.js 3.69 4.07 5.61 4.55 4.44 - -
test-prop-read-256.js 3.62 4.02 5.21 8.29 4.42 - -
test-prop-read-32.js 3.65 4.00 5.19 5.58 4.43 - -
test-prop-read-4.js 3.54 3.61 4.79 3.99 4.41 - -
test-prop-read-48.js 3.64 7.31 5.86 6.52 4.42 - -
test-prop-read-64.js 3.62 4.05 5.24 6.56 4.43 - -
test-prop-read-8.js 3.75 3.76 5.01 5.00 4.46 - -
test-prop-read.js 3.83 3.76 4.98 4.03 4.54 1.14 2.62
test-prop-write-1024.js 3.32 4.09 4.97 10.37 5.29 - -
test-prop-write-16.js 3.30 4.15 5.02 4.42 5.30 - -
test-prop-write-256.js 3.38 4.10 5.02 8.24 5.30 - -
test-prop-write-32.js 3.30 4.07 5.03 5.59 5.32 - -
test-prop-write-4.js 3.53 3.66 4.40 3.95 5.28 - -
test-prop-write-48.js 3.33 4.01 8.10 6.50 5.26 - -
test-prop-write-64.js 3.31 4.03 5.07 6.51 5.31 - -
test-prop-write-8.js 3.30 3.82 4.60 4.90 5.27 - -
test-prop-write.js 3.65 3.74 4.42 3.95 5.29 1.41 2.72
test-random.js 2.26 2.56 6.86 1.12 2.00 - -
test-reg-readwrite-object.js 3.73 4.27 3.86 8.57 15.01 1.92 -
test-reg-readwrite-plain.js 2.51 3.59 2.48 8.44 12.16 1.91 5.50
test-regexp-case-insensitive.js 28.48 27.76 25.69 0.00 0.00 - -
test-regexp-compile.js 2.08 2.28 2.90 1.62 0.46 - -
test-regexp-execute.js 1.49 1.72 2.18 1.84 1.25 - -
test-regexp-string-parse.js 6.41 6.42 10.70 - - - 0.59
test-strict-equals-fastint.js 0.63 0.71 1.23 2.66 3.46 - -
test-strict-equals-nonfastint.js 0.66 0.76 1.33 2.65 4.50 - -
test-string-array-concat.js 5.31 6.25 6.63 270.24 - 2.22 3.54
test-string-arridx.js 1.69 1.82 1.96 1.02 1.65 - -
test-string-charlen-ascii.js 1.17 1.20 1.45 5.14 0.80 - -
test-string-charlen-nonascii.js (3.07) 2.87 2.90 7.73 0.54 - -
test-string-compare.js 2.40 2.56 3.86 790.20 - 3.49 5.95
test-string-decodeuri.js 4.51 4.40 4.13 2.26 - - -
test-string-encodeuri.js 4.68 4.85 4.47 3.97 - - -
test-string-garbage.js 4.04 5.56 5.36 1.90 2.08 1.77 1.82
test-string-intern-grow-short.js 3.78 13.04 12.72 - - - -
test-string-intern-grow-short2.js 3.73 5.06 5.31 - - - -
test-string-intern-grow.js 4.09 21.42 21.73 - - - -
test-string-intern-grow2.js 0.64 1.84 1.88 - - - -
test-string-intern-match-short.js 1.81 2.74 2.68 - - - -
test-string-intern-match.js 0.22 0.26 0.26 - - - -
test-string-intern-miss-short.js 2.16 3.40 3.57 - - - -
test-string-intern-miss.js 0.34 1.22 1.24 - - - -
test-string-number-list.js 0.66 1.25 1.74 7.78 - - -
test-string-plain-concat.js 0.46 0.90 1.07 1.04 0.54 0.60 0.00
test-string-scan-nonascii.js (4.25) 3.96 4.38 50.74 15.79 - -
test-string-uppercase.js 2.82 2.83 2.86 4.86 - - 1.34
test-textdecoder-ascii.js (2.65) 2.42 - - - - -
test-textdecoder-nonascii.js 2.78 3.41 - - - - -
test-textencoder-ascii.js 5.48 5.47 - - - - -
test-textencoder-nonascii.js 11.26 11.92 - - - - -
test-try-catch-nothrow.js 3.32 3.38 2.97 2.42 3.58 - -
test-try-catch-throw.js 30.96 43.04 45.43 23.70 16.34 - -
test-try-finally-nothrow.js 4.02 4.08 3.88 2.29 4.06 - -
test-try-finally-throw.js 46.12 53.72 55.95 26.29 19.72 - -

Duktape microbenchmarks, full

Baseline is duk.O2.200, compared to duk.O2.210. Lower is better, lowest of 5 runs.

duk-perf-pgo.O2.210 duk-pgo.O2.210 duk-perf.O2.210 duk-perf.O2.200 duk.O2.210 duk.O2.200 duk.O2.150 mujs jerry lua python perl ruby
test-add-fastint.js 0.71 0.60 0.65 0.65 0.73 0.85 0.91 4.38 2.95 - - - -
test-add-float.js 0.60 0.66 0.68 0.67 0.70 0.87 0.94 4.38 4.16 - - - -
test-add-nan-fastint.js 0.71 0.82 0.76 0.73 0.76 0.90 1.00 4.38 3.50 - - - -
test-add-nan.js 0.60 0.66 0.67 0.67 0.70 0.87 0.91 4.40 4.17 - - - -
test-arith-add.js 2.87 2.40 2.62 2.58 2.96 3.43 3.66 17.48 16.58 - - - -
test-arith-div.js 7.81 7.18 7.44 7.62 7.94 8.38 9.19 12.20 20.96 - - - -
test-arith-mod.js 6.78 7.21 6.56 6.40 7.36 7.50 8.73 14.76 25.26 - - - -
test-arith-mul.js 3.94 4.01 3.36 3.44 4.00 4.36 5.14 12.03 16.46 - - - -
test-arith-sub.js 2.01 3.03 2.68 2.70 2.98 3.50 3.95 12.13 16.91 - - - -
test-array-append.js 0.45 0.48 0.52 0.61 0.52 0.72 0.76 51.66 - - - - -
test-array-cons-list.js 0.66 0.68 0.70 0.90 0.72 0.96 2.50 9.07 2.19 - - - -
test-array-foreach.js 2.48 2.66 2.46 2.65 2.60 2.78 2.92 3.56 1.65 - - - -
test-array-literal.js 1.08 1.12 1.10 1.64 1.10 1.76 1.98 60.52 0.88 - - - -
test-array-pop.js 1.51 1.60 2.08 2.35 2.06 2.45 8.08 51.36 7.08 1.16 1.18 - -
test-array-push.js 1.72 1.84 2.20 2.63 2.30 2.74 5.38 8.55 4.06 1.02 0.60 - -
test-array-read-lenloop.js 1.52 1.62 2.11 2.07 2.16 2.41 2.75 123.04 4.57 - - - -
test-array-read.js 1.62 1.64 1.94 1.97 2.03 2.26 2.60 232.08 5.70 1.12 2.18 3.52 1.66
test-array-sort.js 3.68 3.61 3.31 3.58 3.35 3.48 3.51 - 4.26 - - - -
test-array-write-length.js 1.44 1.50 1.67 1.64 1.81 2.00 2.94 3.70 2.70 - - - -
test-array-write.js 1.78 1.84 1.96 1.94 1.97 2.24 3.01 248.86 6.51 1.34 3.02 3.57 2.34
test-assign-add.js 3.68 4.02 3.81 3.83 4.21 5.36 6.04 37.42 25.02 3.49 15.83 25.65 9.58
test-assign-add.js 3.71 4.02 3.83 3.87 4.20 5.36 6.04 37.40 25.02 3.51 15.87 40.47 9.82
test-assign-addto-nan.js 1.16 1.43 1.22 1.17 1.20 1.45 1.64 8.04 6.45 - - - -
test-assign-addto.js 3.68 4.02 3.86 3.85 4.20 5.36 6.04 38.39 30.42 3.50 17.13 24.90 9.64
test-assign-boolean.js 5.12 5.13 5.12 5.11 5.16 5.20 5.22 10.36 20.73 - - - -
test-assign-const-int.js 2.32 2.93 2.91 2.85 3.01 4.18 3.08 10.56 12.80 2.56 6.03 24.98 4.87
test-assign-const-int2.js 4.68 5.94 5.56 5.58 6.08 8.52 10.18 10.91 12.98 - - - -
test-assign-const.js 4.19 4.49 3.95 3.90 5.18 5.77 4.50 10.88 19.16 2.55 6.06 26.31 4.95
test-assign-literal.js 3.87 4.11 3.75 3.78 4.21 5.44 4.76 10.95 23.22 2.74 13.56 - 4.82
test-assign-proplhs-reg.js 2.79 2.70 3.00 2.87 2.90 3.19 3.92 2.70 5.58 - - - -
test-assign-proprhs.js 1.92 1.91 3.06 3.01 3.05 3.21 4.30 2.67 3.99 - - - -
test-assign-reg.js 2.65 3.04 3.28 3.18 3.42 4.80 3.35 9.68 17.14 2.52 5.96 25.49 5.15
test-base64-decode-whitespace.js 2.21 2.21 1.92 1.94 (2.20) 2.01 - - - - 8.63 - -
test-base64-decode.js 1.73 1.73 1.73 1.72 (1.73) 1.66 - - - - 8.62 - -
test-base64-encode.js 2.07 2.08 1.86 1.86 1.86 1.87 - - - - 20.42 - -
test-bitwise-ops.js 1.66 1.82 1.73 1.71 2.04 2.38 2.46 14.97 21.76 - - - -
test-break-fast.js 1.26 1.42 1.23 1.27 1.54 1.81 1.57 1.26 1.40 - - - -
test-break-slow.js 7.47 8.06 7.46 7.31 8.29 9.37 8.93 2.82 4.57 - - - -
test-buffer-nodejs-read.js 2.25 2.34 2.42 2.40 2.50 2.81 2.80 - - - - - -
test-buffer-nodejs-write.js 3.93 3.99 3.12 3.20 3.28 3.47 3.40 - - - - - -
test-buffer-object-read.js 2.26 2.34 2.47 2.43 2.53 2.81 2.81 - - - - - -
test-buffer-object-write.js 3.93 3.98 3.13 3.20 3.28 3.50 3.40 - - - - - -
test-buffer-plain-read.js 1.80 1.95 2.02 2.00 2.04 2.37 2.34 - - - - - -
test-buffer-plain-write.js 1.84 1.90 1.98 1.97 2.00 2.29 2.14 - - - - - -
test-call-basic-1.js 4.55 4.99 7.12 7.77 7.69 8.73 9.95 7.30 10.44 2.27 6.16 8.61 2.86
test-call-basic-2.js 4.55 4.99 7.11 7.75 7.70 8.66 10.00 5.28 9.14 - - - -
test-call-basic-3.js 6.47 7.10 9.08 9.76 9.85 10.94 16.15 13.68 15.58 - - - -
test-call-basic-4.js 14.30 15.30 17.43 18.70 19.48 21.02 38.63 37.95 39.20 - - - -
test-call-native.js 12.38 13.32 12.21 13.14 12.95 13.88 14.60 17.36 8.52 - - - -
test-call-prop.js 2.58 2.80 4.13 4.43 4.43 4.90 6.02 3.14 4.68 - - - -
test-call-reg-new.js 5.38 5.59 5.75 6.93 5.90 6.99 7.24 3.00 3.38 - - - -
test-call-reg.js 1.78 2.03 2.82 3.02 2.99 3.37 3.84 2.48 3.84 - - - -
test-call-var.js 3.26 3.48 6.00 8.39 6.20 8.64 8.58 4.79 4.32 - - - -
test-closure-inner-functions.js 1.12 1.24 1.20 1.76 1.33 1.80 2.59 0.66 0.26 - - - -
test-compile-mandel-nofrac.js 10.30 10.59 10.37 11.58 10.40 11.36 14.08 6.50 2.41 - - - -
test-compile-mandel.js 13.36 13.76 13.59 14.64 13.47 14.45 16.91 6.49 2.40 - - - -
test-compile-short.js 5.43 5.78 5.71 6.80 5.77 7.02 9.67 2.43 0.98 - - - -
test-compile-string-ascii.js 7.01 7.46 7.15 7.22 7.06 7.12 9.93 6.99 - - - - -
test-continue-fast.js 1.70 1.92 1.81 1.81 2.06 2.24 2.06 2.20 2.56 - - - -
test-continue-slow.js 8.11 8.39 7.96 7.99 8.82 9.92 9.30 3.65 6.56 - - - -
test-empty-loop-slowpath.js 0.86 0.88 0.98 1.71 1.10 1.77 2.38 1.09 0.71 - - - -
test-empty-loop.js 1.38 1.52 1.98 1.98 1.84 2.40 2.34 6.38 3.60 1.14 5.13 3.64 4.32
test-enum-basic.js 3.12 3.23 3.35 4.24 3.35 4.33 4.92 0.71 1.17 - - - -
test-equals-fastint.js 0.58 0.59 0.58 0.59 0.62 0.72 1.23 2.59 3.36 - - - -
test-equals-nonfastint.js 0.66 0.69 0.62 0.63 0.66 0.76 1.33 2.58 4.72 - - - -
test-error-create.js 1.20 1.23 1.65 2.35 1.71 2.30 3.64 5.12 0.82 - - - -
test-fib.js 2.86 3.06 6.01 7.08 6.34 7.57 8.34 3.60 5.71 1.43 2.91 7.38 1.27
test-global-lookup.js 4.86 4.70 6.38 8.82 6.79 8.96 11.60 4.51 2.74 - - - -
test-hello-world.js 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.02
test-hex-decode.js 4.00 4.00 4.01 4.01 4.00 3.98 4.04 - - - 13.45 - -
test-hex-encode.js 3.24 3.28 3.20 3.12 3.08 3.29 - - - - 1.68 - -
test-jc-serialize-indented.js 7.74 7.67 3.82 3.66 (3.82) 3.69 3.98 - - - - - -
test-jc-serialize.js 2.57 2.55 2.31 2.46 2.39 2.48 2.78 - - - - - -
test-json-parse-hex.js 4.50 4.46 4.06 3.59 3.60 3.60 - - - - - - -
test-json-parse-integer.js 3.20 3.18 2.89 4.26 2.87 4.06 4.19 23.34 - - 0.08 - -
test-json-parse-number.js 5.70 5.57 5.23 5.31 5.22 5.26 5.35 2.68 - - 0.40 - -
test-json-parse-string.js 5.16 5.14 5.25 5.40 5.17 5.68 5.43 48.75 - - - - -
test-json-serialize-fastpath-loop.js 6.92 6.90 3.54 3.97 3.62 3.99 4.03 13.40 582.05 - - - -
test-json-serialize-forceslow.js 10.93 11.07 9.68 10.08 9.78 9.98 11.98 2.39 9.10 - - - -
test-json-serialize-hex.js 1.59 1.56 1.52 1.51 1.51 1.52 - - - - - - -
test-json-serialize-indented-deep100.js 1.76 1.79 1.43 1.94 1.43 1.93 2.72 1.62 147.40 - - - -
test-json-serialize-indented-deep25.js 7.76 7.72 3.52 3.45 3.60 3.56 3.76 11.21 265.65 - - - -
test-json-serialize-indented-deep500.js 1.07 1.08 0.94 1.28 0.93 1.27 1.61 - - - - - -
test-json-serialize-indented.js 13.56 13.34 6.19 6.52 6.12 6.67 7.16 16.42 108.06 - - - -
test-json-serialize-jsonrpc-message.js 2.08 2.11 3.13 3.33 3.27 3.32 3.32 - - - - - -
test-json-serialize-nofrac.js 0.67 0.68 0.66 0.66 0.66 0.75 0.79 1.72 7.26 - - - -
test-json-serialize-plainbuf.js 2.50 2.48 2.52 31.13 2.48 30.95 0.07 - - - - - -
test-json-serialize-slowpath-loop.js 4.13 4.30 3.72 4.57 3.72 4.65 6.60 - 6.34 - - - -
test-json-serialize.js 7.90 7.88 6.41 6.54 6.48 6.49 6.62 2.38 9.04 - 0.65 - -
test-json-string-bench.js 2.46 2.52 3.14 3.66 3.18 3.85 5.59 53.90 - - - - -
test-json-string-stringify.js 5.34 5.37 9.32 10.34 10.16 10.36 10.44 11.77 - - 0.53 - -
test-jx-serialize-bufobj-forceslow.js 4.10 4.22 4.38 5.16 4.47 5.05 6.17 - - - - - -
test-jx-serialize-bufobj.js 1.68 1.78 1.66 1.66 1.71 1.73 1.79 - - - - - -
test-jx-serialize-indented.js 7.45 7.50 3.40 3.48 3.45 3.51 3.80 - - - - - -
test-jx-serialize.js 2.50 2.52 2.17 2.30 2.24 2.36 2.62 - - - - - -
test-mandel.js 2.38 2.68 2.93 2.93 3.15 3.73 4.37 15.26 14.52 1.96 - - -
test-object-garbage-2.js 3.52 3.64 3.58 5.31 3.62 5.43 5.38 54.81 3.29 - - - -
test-object-garbage.js 3.11 3.36 3.36 4.86 3.31 5.05 5.49 2.70 2.77 4.15 0.85 - -
test-object-literal.js 2.44 2.40 2.48 3.08 2.53 3.21 2.88 4.43 2.29 - - - -
test-prop-read-1024.js 2.43 2.49 3.49 3.76 3.64 4.20 5.26 6.74 4.46 - - - -
test-prop-read-16.js 2.46 2.46 3.50 3.88 3.69 4.07 5.61 4.55 4.44 - - - -
test-prop-read-256.js 2.43 2.48 3.51 3.80 3.62 4.02 5.21 8.29 4.42 - - - -
test-prop-read-32.js 2.41 2.45 3.50 4.54 3.65 4.00 5.19 5.58 4.43 - - - -
test-prop-read-4.js 2.36 2.33 3.50 3.33 3.54 3.61 4.79 3.99 4.41 - - - -
test-prop-read-48.js 2.41 2.45 3.50 5.52 3.64 7.31 5.86 6.52 4.42 - - - -
test-prop-read-64.js 2.42 2.48 3.51 3.82 3.62 4.05 5.24 6.56 4.43 - - - -
test-prop-read-8.js 2.42 2.47 3.49 3.72 3.75 3.76 5.01 5.00 4.46 - - - -
test-prop-read.js 2.48 2.41 3.55 3.38 3.83 3.76 4.98 4.03 4.54 1.14 2.62 4.77 3.97
test-prop-write-1024.js 3.13 3.15 3.36 4.46 3.32 4.09 4.97 10.37 5.29 - - - -
test-prop-write-16.js 3.12 3.13 3.35 3.80 3.30 4.15 5.02 4.42 5.30 - - - -
test-prop-write-256.js 3.11 3.14 3.40 3.99 3.38 4.10 5.02 8.24 5.30 - - - -
test-prop-write-32.js 3.18 3.14 3.35 3.80 3.30 4.07 5.03 5.59 5.32 - - - -
test-prop-write-4.js 3.24 3.20 3.29 3.29 3.53 3.66 4.40 3.95 5.28 - - - -
test-prop-write-48.js 3.12 3.13 3.34 3.87 3.33 4.01 8.10 6.50 5.26 - - - -
test-prop-write-64.js 3.08 3.14 3.38 3.83 3.31 4.03 5.07 6.51 5.31 - - - -
test-prop-write-8.js 3.12 3.18 3.32 3.40 3.30 3.82 4.60 4.90 5.27 - - - -
test-prop-write.js 3.26 3.22 3.32 3.32 3.65 3.74 4.42 3.95 5.29 1.41 2.72 4.96 5.24
test-random.js 1.45 1.64 2.10 2.36 2.26 2.56 6.86 1.12 2.00 - - - -
test-reg-readwrite-object.js 3.28 3.40 3.36 3.34 3.73 4.27 3.86 8.57 15.01 1.92 - 33.29 4.23
test-reg-readwrite-plain.js 1.92 2.24 2.37 2.36 2.51 3.59 2.48 8.44 12.16 1.91 5.50 35.91 4.28
test-regexp-case-insensitive.js 0.00 38.23 0.00 0.00 28.48 27.76 25.69 0.00 0.00 - - - -
test-regexp-compile.js 2.10 2.23 2.02 2.33 2.08 2.28 2.90 1.62 0.46 - - - -
test-regexp-execute.js 1.42 1.45 1.48 1.74 1.49 1.72 2.18 1.84 1.25 - - - -
test-regexp-string-parse.js 11.59 11.47 6.56 6.46 6.41 6.42 10.70 - - - 0.59 - -
test-strict-equals-fastint.js 0.59 0.63 0.58 0.58 0.63 0.71 1.23 2.66 3.46 - - - -
test-strict-equals-nonfastint.js 0.69 0.69 0.64 0.62 0.66 0.76 1.33 2.65 4.50 - - - -
test-string-array-concat.js 5.05 5.31 5.57 6.01 5.31 6.25 6.63 270.24 - 2.22 3.54 8.01 6.48
test-string-arridx.js 1.70 1.74 1.70 1.78 1.69 1.82 1.96 1.02 1.65 - - - -
test-string-charlen-ascii.js 1.18 1.14 1.16 1.20 1.17 1.20 1.45 5.14 0.80 - - - -
test-string-charlen-nonascii.js 2.78 2.78 2.82 2.78 (3.07) 2.87 2.90 7.73 0.54 - - - -
test-string-compare.js 2.11 2.13 2.11 2.12 2.40 2.56 3.86 790.20 - 3.49 5.95 18.94 5.09
test-string-decodeuri.js 4.72 4.74 4.37 4.28 4.51 4.40 4.13 2.26 - - - - -
test-string-encodeuri.js 5.31 5.22 4.78 4.75 4.68 4.85 4.47 3.97 - - - - -
test-string-garbage.js 4.17 4.32 4.12 5.31 4.04 5.56 5.36 1.90 2.08 1.77 1.82 - -
test-string-intern-grow-short.js 3.51 3.57 3.64 12.44 3.78 13.04 12.72 - - - - - -
test-string-intern-grow-short2.js 3.44 3.54 3.54 4.96 3.73 5.06 5.31 - - - - - -
test-string-intern-grow.js 4.22 4.12 4.13 21.34 4.09 21.42 21.73 - - - - - -
test-string-intern-grow2.js 0.62 0.62 0.65 1.84 0.64 1.84 1.88 - - - - - -
test-string-intern-match-short.js 1.62 1.66 1.69 2.76 1.81 2.74 2.68 - - - - - -
test-string-intern-match.js 0.19 0.20 0.20 0.23 0.22 0.26 0.26 - - - - - -
test-string-intern-miss-short.js 1.96 1.99 2.00 3.30 2.16 3.40 3.57 - - - - - -
test-string-intern-miss.js 0.31 0.32 0.32 1.18 0.34 1.22 1.24 - - - - - -
test-string-number-list.js 0.53 0.54 0.66 1.27 0.66 1.25 1.74 7.78 - - - - -
test-string-plain-concat.js 0.44 0.47 0.44 0.92 0.46 0.90 1.07 1.04 0.54 0.60 0.00 0.44 0.48
test-string-scan-nonascii.js 4.54 4.34 4.19 3.94 (4.25) 3.96 4.38 50.74 15.79 - - - -
test-string-uppercase.js 3.20 3.56 2.78 2.84 2.82 2.83 2.86 4.86 - - 1.34 - -
test-textdecoder-ascii.js 2.38 2.64 2.62 2.72 (2.65) 2.42 - - - - - - -
test-textdecoder-nonascii.js 3.25 3.30 2.78 3.31 2.78 3.41 - - - - - - -
test-textencoder-ascii.js 6.04 6.02 5.73 5.73 5.48 5.47 - - - - - - -
test-textencoder-nonascii.js 14.34 13.89 10.52 10.49 11.26 11.92 - - - - - - -
test-try-catch-nothrow.js 2.98 3.22 3.12 2.74 3.32 3.38 2.97 2.42 3.58 - - - -
test-try-catch-throw.js 28.60 30.58 29.23 41.56 30.96 43.04 45.43 23.70 16.34 - - - -
test-try-finally-nothrow.js 3.74 4.05 3.48 3.16 4.02 4.08 3.88 2.29 4.06 - - - -
test-try-finally-throw.js 44.27 46.10 43.85 52.37 46.12 53.72 55.95 26.29 19.72 - - - -

Setup

Measurement host:

Duktape is compiled with:

Note that: