Duktape 2.2.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.220 | duk.O2.220 | duk-pgo.O2.210 | duk.O2.210 | duk.O2.200 | duk.O2.150 | mujs | jerry |
---|---|---|---|---|---|---|---|---|
Box2D | 1208 | 928 | 1180 | 830 | 756 | 586 | 311 | - |
CodeLoad | 6276 | 6542 | 6127 | 6310 | 5676 | 4579 | - | - |
Crypto | 293 | 280 | 285 | 242 | 185 | 183 | - | 193 |
DeltaBlue | 305 | 220 | 295 | 192 | 178 | 138 | 78 | 166 |
EarleyBoyer | 586 | 589 | 530 | 529 | 342 | 291 | - | - |
Gameboy | 2209 | 1783 | 2197 | 1491 | 1324 | 1119 | - | - |
NavierStokes | 843 | 749 | 778 | 687 | 557 | 503 | - | - |
PdfJS | 855 | 808 | 831 | 754 | 390 | 352 | - | - |
RayTrace | 468 | 396 | 427 | 352 | 241 | 209 | 330 | 234 |
Richards | 225 | 178 | 220 | 150 | 144 | 112 | 115 | 166 |
Splay | 1261 | 1118 | 1083 | 930 | 696 | 635 | 29 | - |
SplayLatency | 2865 | 5719 | 2813 | 4240 | 3344 | 2288 | 266 | - |
SCORE | 888 | 830 | 844 | 724 | 568 | 475 | - | - |
Duktape microbenchmarks, comparison to other engines
Baseline is duk.O2.220, compared to a few other engines. Lower is better, lowest of 5 runs.
duk.O2.220 | mujs | jerry | |
---|---|---|---|
test-add-fastint | 0.67 | (4.37) ▼ | (2.96) ▼ |
test-add-float | 0.71 | (4.40) ▼ | (4.14) ▼ |
test-add-int | 0.70 | (4.47) ▼ | (4.74) ▼ |
test-add-nan-fastint | 0.89 | (4.38) ▼ | (3.49) ▼ |
test-add-nan | 0.70 | (4.38) ▼ | (4.15) ▼ |
test-add-string | 14.26 | 9.97 ▲ | 13.22 ⇑ |
test-arith-add | 2.72 | (17.45) ▼ | (16.58) ▼ |
test-arith-add-string | 1.40 | 1.00 ▲ | 1.31 |
test-arith-div | 7.69 | (12.20) ▼ | (21.04) ▼ |
test-arith-mod | 6.87 | (14.80) ▼ | (25.42) ▼ |
test-arith-mul | 3.93 | (12.05) ▼ | (16.42) ▼ |
test-arith-sub | 2.82 | (12.21) ▼ | (16.92) ▼ |
test-array-append | 0.53 | (48.00) ▼ | - |
test-array-cons-list | 0.63 | (8.79) ▼ | (2.22) ▼ |
test-array-foreach | 2.23 | (3.69) ▼ | 1.66 ▲ |
test-array-literal-100 | 2.61 | (446.78) ▼ | (3.92) ▼ |
test-array-literal-20 | 0.66 | (59.65) ▼ | (0.91) ▼ |
test-array-literal-3 | 0.26 | (6.15) ▼ | 0.24 ⇑ |
test-array-pop | 1.66 | (51.24) ▼ | (7.07) ▼ |
test-array-push | 2.02 | (8.52) ▼ | (4.02) ▼ |
test-array-read | 1.96 | (236.50) ▼ | (5.73) ▼ |
test-array-read-lenloop | 2.14 | (123.30) ▼ | (4.57) ▼ |
test-array-sort | 3.22 | - | (4.26) ▼ |
test-array-write | 1.90 | (255.16) ▼ | (6.62) ▼ |
test-array-write-length | 1.60 | (3.67) ▼ | (2.71) ▼ |
test-assign-add | 4.17 | (38.24) ▼ | (25.02) ▼ |
test-assign-addto | 4.18 | (37.46) ▼ | (30.29) ▼ |
test-assign-addto-nan | 1.43 | (8.07) ▼ | (6.44) ▼ |
test-assign-boolean | 5.14 | (10.35) ▼ | (20.94) ▼ |
test-assign-const-int2 | 6.15 | (10.61) ▼ | (12.75) ▼ |
test-assign-const-int | 3.01 | (10.53) ▼ | (12.80) ▼ |
test-assign-const | 4.18 | (10.74) ▼ | (18.82) ▼ |
test-assign-literal | 4.42 | (10.89) ▼ | (23.24) ▼ |
test-assign-proplhs-reg | 2.68 | 2.65 | (5.62) ▼ |
test-assign-proprhs | 2.85 | 2.66 | (3.98) ▼ |
test-assign-reg | 3.27 | (9.68) ▼ | (17.20) ▼ |
test-base64-decode | 1.73 | - | - |
test-base64-decode-whitespace | 1.94 | - | - |
test-base64-encode | 1.87 | - | - |
test-bitwise-ops | 1.90 | (14.86) ▼ | (21.80) ▼ |
test-break-fast | 1.23 | (1.31) | (1.41) ▼ |
test-break-slow | 7.44 | 2.84 ▲ | 4.60 ▲ |
test-buffer-nodejs-read | 2.39 | - | - |
test-buffer-nodejs-write | 3.12 | - | - |
test-buffer-object-read | 2.41 | - | - |
test-buffer-object-write | 3.18 | - | - |
test-buffer-plain-read | 1.96 | - | - |
test-buffer-plain-write | 1.93 | - | - |
test-call-apply | 2.37 | (2.52) | (2.50) |
test-call-basic-1 | 6.36 | 6.27 | (9.65) ▼ |
test-call-basic-2 | 6.51 | 4.60 ▲ | (8.83) ▼ |
test-call-basic-3 | 8.34 | (12.96) ▼ | (15.18) ▼ |
test-call-basic-4 | 17.56 | (42.82) ▼ | (40.11) ▼ |
test-call-bound-deep | 2.98 | - | (4.45) ▼ |
test-call-bound | 2.84 | - | 2.02 ▲ |
test-call-call | 2.13 | 1.57 ▲ | 1.73 ▲ |
test-call-native | 11.31 | (16.99) ▼ | 8.60 ▲ |
test-call-prop | 3.92 | 3.16 ▲ | (4.69) ▼ |
test-call-proxy-apply-1 | 26.93 | - | - |
test-call-proxy-pass-1 | 13.81 | - | - |
test-call-reg | 2.54 | 2.48 | (3.84) ▼ |
test-call-reg-new | 4.92 | 3.00 ▲ | 3.38 ▲ |
test-call-tail-1 | 1.04 | - | (1.82) ▼ |
test-call-tail-2 | 1.16 | - | (1.99) ▼ |
test-call-var | 5.50 | 4.87 ▲ | 4.33 ▲ |
test-closure-inner-functions | 1.27 | 0.70 ▲ | 0.26 ▲ |
test-compile-mandel | 13.12 | 6.45 ▲ | 2.40 ▲ |
test-compile-mandel-nofrac | 10.06 | 6.46 ▲ | 2.40 ▲ |
test-compile-short | 5.67 | 2.32 ▲ | 0.97 ▲ |
test-compile-string-ascii | 7.93 | 6.89 ▲ | - |
test-continue-fast | 1.55 | (2.16) ▼ | (2.60) ▼ |
test-continue-slow | 7.74 | 3.66 ▲ | 6.56 ▲ |
test-empty-loop | 1.78 | (6.40) ▼ | (3.59) ▼ |
test-empty-loop-slowpath | 0.97 | (1.08) ▼ | 0.71 ▲ |
test-empty-loop-step3 | 1.82 | (8.05) ▼ | (7.07) ▼ |
test-enum-basic | 3.26 | 0.71 ▲ | 1.16 ▲ |
test-equals-fastint | 0.57 | (2.58) ▼ | (3.36) ▼ |
test-equals-nonfastint | 0.64 | (2.58) ▼ | (4.75) ▼ |
test-error-create | 1.60 | (5.09) ▼ | 0.86 ▲ |
test-fib-2 | 3.20 | (3.68) ▼ | (5.95) ▼ |
test-fib | 5.90 | 3.62 ▲ | 5.75 |
test-func-bind | 2.18 | - | 1.01 ▲ |
test-global-lookup | 6.16 | 4.53 ▲ | 2.75 ▲ |
test-hello-world | 0.00 | 0.00 | 0.00 |
test-hex-decode | 4.01 | - | - |
test-hex-encode | 3.21 | - | - |
test-jc-serialize-indented | 3.17 | - | - |
test-jc-serialize | 2.15 | - | - |
test-json-parse-hex | 3.47 | - | - |
test-json-parse-integer | 2.90 | (23.51) ▼ | - |
test-json-parse-number | 5.09 | 2.70 ▲ | - |
test-json-parse-string | 5.23 | (51.66) ▼ | - |
test-json-serialize-fastpath-loop | 3.32 | (13.44) ▼ | (581.44) ▼ |
test-json-serialize-forceslow | 9.51 | 2.40 ▲ | 9.14 |
test-json-serialize-hex | 1.54 | - | - |
test-json-serialize-indented-deep100 | 1.38 | (1.60) ▼ | (149.64) ▼ |
test-json-serialize-indented-deep25 | 3.17 | (11.84) ▼ | (280.97) ▼ |
test-json-serialize-indented-deep500 | 0.94 | - | - |
test-json-serialize-indented | 5.57 | (16.33) ▼ | (108.33) ▼ |
test-json-serialize | 6.40 | 2.37 ▲ | (9.06) ▼ |
test-json-serialize-jsonrpc-message | 3.11 | - | - |
test-json-serialize-nofrac | 0.62 | (1.74) ▼ | (7.26) ▼ |
test-json-serialize-plainbuf | 2.55 | - | - |
test-json-serialize-slowpath-loop | 3.42 | - | (11.18) ▼ |
test-json-string-bench | 2.80 | (53.98) ▼ | - |
test-json-string-stringify | 10.05 | (11.67) ▼ | - |
test-jx-serialize-bufobj-forceslow | 4.11 | - | - |
test-jx-serialize-bufobj | 1.52 | - | - |
test-jx-serialize-indented | 3.04 | - | - |
test-jx-serialize | 2.08 | - | - |
test-mandel | 2.94 | (15.22) ▼ | (14.56) ▼ |
test-math-clz32 | 2.21 | - | - |
test-misc-1dcell | 3.70 | (127.98) ▼ | (8.58) ▼ |
test-object-garbage-2 | 2.61 | (54.54) ▼ | (3.31) ▼ |
test-object-garbage | 4.05 | 2.68 ▲ | 2.78 ▲ |
test-object-literal-100 | 7.10 | (30.28) ▼ | (12.54) ▼ |
test-object-literal-20 | 1.62 | (4.30) ▼ | (2.27) ▼ |
test-object-literal-3 | 0.36 | (0.52) ▼ | (0.39) ⇓ |
test-prop-read-1024 | 3.31 | (6.82) ▼ | (4.46) ▼ |
test-prop-read-16 | 3.32 | (4.48) ▼ | (4.43) ▼ |
test-prop-read-256 | 3.27 | (8.29) ▼ | (4.43) ▼ |
test-prop-read-32 | 3.32 | (5.62) ▼ | (4.44) ▼ |
test-prop-read-48 | 3.34 | (6.52) ▼ | (4.42) ▼ |
test-prop-read-4 | 3.43 | (4.00) ▼ | (4.42) ▼ |
test-prop-read-64 | 3.31 | (6.52) ▼ | (4.34) ▼ |
test-prop-read-8 | 3.32 | (4.93) ▼ | (4.43) ▼ |
test-prop-read-inherited | 4.76 | 4.75 | (9.40) ▼ |
test-prop-read | 3.44 | (3.96) ▼ | (4.43) ▼ |
test-prop-write-1024 | 3.14 | (10.39) ▼ | (5.26) ▼ |
test-prop-write-16 | 3.20 | (4.46) ▼ | (5.27) ▼ |
test-prop-write-256 | 3.14 | (8.21) ▼ | (5.32) ▼ |
test-prop-write-32 | 3.18 | (5.52) ▼ | (5.32) ▼ |
test-prop-write-48 | 3.22 | (6.57) ▼ | (5.29) ▼ |
test-prop-write-4 | 3.20 | (3.93) ▼ | (5.30) ▼ |
test-prop-write-64 | 3.21 | (6.55) ▼ | (5.32) ▼ |
test-prop-write-8 | 3.16 | (4.92) ▼ | (5.26) ▼ |
test-prop-write | 3.25 | (3.95) ▼ | (5.28) ▼ |
test-proxy-get | 1.62 | - | - |
test-random | 1.61 | 1.14 ▲ | (2.14) ▼ |
test-reflect-ownkeys-sorted | 1.11 | - | - |
test-reflect-ownkeys-unsorted | 1.12 | - | - |
test-regexp-case-insensitive-compile | 0.71 | 0.00 ▲ | 0.00 ▲ |
test-regexp-case-insensitive-execute | 1.69 | (46.32) ▼ | 0.12 ▲ |
test-regexp-case-sensitive-compile | 1.82 | 0.90 ▲ | 0.66 ▲ |
test-regexp-case-sensitive-execute | 1.59 | 0.65 ▲ | 1.60 |
test-regexp-compile | 2.45 | 2.02 ▲ | 0.57 ▲ |
test-regexp-execute | 1.81 | (2.30) ▼ | 1.54 ▲ |
test-regexp-string-parse | 8.08 | - | - |
test-reg-readwrite-object | 4.54 | (10.75) ▼ | (18.71) ▼ |
test-reg-readwrite-plain | 2.87 | (10.85) ▼ | (14.85) ▼ |
test-strict-equals-fastint | 0.70 | (3.37) ▼ | (4.18) ▼ |
test-strict-equals-nonfastint | 0.76 | (3.38) ▼ | (5.62) ▼ |
test-string-array-concat | 6.66 | (320.63) ▼ | - |
test-string-arridx | 1.81 | 1.32 ▲ | (2.00) ▼ |
test-string-charlen-ascii | 1.42 | (6.20) ▼ | 0.99 ▲ |
test-string-charlen-nonascii | 3.38 | (9.84) ▼ | 0.68 ▲ |
test-string-compare | 2.63 | - | - |
test-string-decodeuri | 5.53 | 2.98 ▲ | - |
test-string-encodeuri | 5.40 | 5.06 | - |
test-string-garbage | 4.49 | 2.41 ▲ | 2.55 ▲ |
test-string-intern-grow2 | 0.78 | - | - |
test-string-intern-grow | 5.10 | - | - |
test-string-intern-grow-short2 | 4.29 | - | - |
test-string-intern-grow-short | 4.45 | - | - |
test-string-intern-match | 0.22 | - | - |
test-string-intern-match-short | 1.98 | - | - |
test-string-intern-miss | 0.39 | - | - |
test-string-intern-miss-short | 2.34 | - | - |
test-string-number-list | 0.72 | (9.56) ▼ | - |
test-string-plain-concat | 0.60 | (1.26) ▼ | (0.66) ⇓ |
test-string-scan-nonascii | 4.96 | (63.81) ▼ | (19.89) ▼ |
test-string-uppercase | 3.33 | (6.19) ▼ | - |
test-textdecoder-ascii | 4.03 | - | - |
test-textdecoder-nonascii | 3.56 | - | - |
test-textencoder-ascii | 6.87 | - | - |
test-textencoder-nonascii | 13.27 | - | - |
test-try-catch-nothrow | 4.34 | 3.08 ▲ | 4.37 |
test-try-catch-throw | 36.55 | 30.04 ▲ | 20.73 ▲ |
test-try-finally-nothrow | 5.18 | 2.90 ▲ | 4.93 |
test-try-finally-throw | 46.46 | 33.72 ▲ | 26.64 ▲ |
Duktape microbenchmarks, pruned
Baseline is duk.O2.210, compared to duk.O2.220, i.e. improvement or regression from 2.1.x -> 2.2.x. Lower is better, lowest of 5 runs.
duk.O2.220 | duk.O2.210 | duk.O2.200 | duk.O2.150 | mujs | jerry | lua | python | |
---|---|---|---|---|---|---|---|---|
test-add-fastint | 0.67 ⇑ | 0.74 | (0.86) ▼ | (0.91) ▼ | (4.37) ▼ | (2.96) ▼ | - | - |
test-add-float | 0.71 | 0.69 | (0.87) ▼ | (0.91) ▼ | (4.40) ▼ | (4.14) ▼ | - | - |
test-add-int | 0.70 | 0.72 | (0.86) ▼ | (0.94) ▼ | (4.47) ▼ | (4.74) ▼ | - | - |
test-add-nan-fastint | (0.89) ▼ | 0.76 | (0.90) ▼ | (0.99) ▼ | (4.38) ▼ | (3.49) ▼ | - | - |
test-add-nan | 0.70 | 0.70 | (0.86) ▼ | (0.91) ▼ | (4.38) ▼ | (4.15) ▼ | - | - |
test-add-string | 14.26 ▲ | 16.86 | (17.97) | (18.83) ▼ | 9.97 ▲ | 13.22 ▲ | - | - |
test-arith-add | 2.72 ⇑ | 2.95 | (3.48) ▼ | (3.74) ▼ | (17.45) ▼ | (16.58) ▼ | - | - |
test-arith-add-string | 1.40 ▲ | 1.70 | (1.82) ⇓ | (1.88) ▼ | 1.00 ▲ | 1.31 ▲ | - | - |
test-arith-div | 7.69 | 7.92 | (8.42) | (9.29) ▼ | (12.20) ▼ | (21.04) ▼ | - | - |
test-arith-mod | 6.87 | 7.35 | 7.52 | (8.76) ▼ | (14.80) ▼ | (25.42) ▼ | - | - |
test-arith-mul | 3.93 | 4.00 | (4.30) ⇓ | (5.13) ▼ | (12.05) ▼ | (16.42) ▼ | - | - |
test-arith-sub | 2.82 | 2.98 | (3.54) ▼ | (3.96) ▼ | (12.21) ▼ | (16.92) ▼ | - | - |
test-array-append | (0.53) | 0.51 | (0.69) ▼ | (0.76) ▼ | (48.00) ▼ | - | - | - |
test-array-cons-list | 0.63 ▲ | 0.72 | (0.96) ▼ | (2.60) ▼ | (8.79) ▼ | (2.22) ▼ | - | - |
test-array-foreach | 2.23 ▲ | 2.63 | (2.77) | (3.00) ▼ | (3.69) ▼ | 1.66 ▲ | - | - |
test-array-literal-100 | 2.61 ▲ | 4.42 | (6.46) ▼ | (6.72) ▼ | (446.78) ▼ | 3.92 ▲ | - | - |
test-array-literal-20 | 0.66 ▲ | 1.11 | (1.73) ▼ | (1.98) ▼ | (59.65) ▼ | 0.91 ▲ | - | - |
test-array-literal-3 | 0.26 ▲ | 0.31 | (0.50) ▼ | (0.72) ▼ | (6.15) ▼ | 0.24 ▲ | - | - |
test-array-pop | 1.66 ▲ | 2.06 | (2.44) ▼ | (7.94) ▼ | (51.24) ▼ | (7.07) ▼ | 1.17 ▲ | 1.19 ▲ |
test-array-push | 2.02 ▲ | 2.30 | (2.70) ▼ | (5.35) ▼ | (8.52) ▼ | (4.02) ▼ | 1.03 ▲ | 0.62 ▲ |
test-array-read | 1.96 | 2.00 | (2.30) ▼ | (3.10) ▼ | (236.50) ▼ | (5.73) ▼ | 1.11 ▲ | (2.18) ⇓ |
test-array-read-lenloop | 2.14 | 2.16 | (2.43) ▼ | (2.77) ▼ | (123.30) ▼ | (4.57) ▼ | - | - |
test-array-sort | 3.22 | 3.30 | 3.31 | (3.51) | - | (4.26) ▼ | - | - |
test-array-write | 1.90 | 1.94 | (2.24) ▼ | (3.00) ▼ | (255.16) ▼ | (6.62) ▼ | 1.38 ▲ | (3.06) ▼ |
test-array-write-length | 1.60 ▲ | 1.80 | (1.91) | (3.01) ▼ | (3.67) ▼ | (2.71) ▼ | - | - |
test-assign-add | 4.17 | 4.20 | (5.37) ▼ | (6.04) ▼ | (38.24) ▼ | (25.02) ▼ | 3.48 ▲ | (16.02) ▼ |
test-assign-addto | 4.18 | 4.19 | (5.33) ▼ | (6.08) ▼ | (37.46) ▼ | (30.29) ▼ | 3.49 ▲ | (17.09) ▼ |
test-assign-addto-nan | (1.43) ▼ | 1.21 | (1.44) ▼ | (1.64) ▼ | (8.07) ▼ | (6.44) ▼ | - | - |
test-assign-boolean | 5.14 | 5.14 | 5.18 | 5.22 | (10.35) ▼ | (20.94) ▼ | - | - |
test-assign-const-int2 | 6.15 | 6.05 | (8.40) ▼ | (10.02) ▼ | (10.61) ▼ | (12.75) ▼ | - | - |
test-assign-const-int | 3.01 | 3.00 | (4.20) ▼ | 3.07 | (10.53) ▼ | (12.80) ▼ | 2.53 ▲ | (5.95) ▼ |
test-assign-const | 4.18 ▲ | 5.22 | (5.70) ⇓ | 4.43 ▲ | (10.74) ▼ | (18.82) ▼ | 2.55 ▲ | (5.97) ▼ |
test-assign-literal | (4.42) | 4.23 | (5.40) ▼ | (4.73) ▼ | (10.89) ▼ | (23.24) ▼ | 2.74 ▲ | (13.35) ▼ |
test-assign-proplhs-reg | 2.68 ⇑ | 2.91 | (3.21) ▼ | (4.06) ▼ | 2.65 ⇑ | (5.62) ▼ | - | - |
test-assign-proprhs | 2.85 | 3.04 | (3.21) | (4.29) ▼ | 2.66 ▲ | (3.98) ▼ | - | - |
test-assign-reg | 3.27 | 3.41 | (4.80) ▼ | 3.36 | (9.68) ▼ | (17.20) ▼ | 2.52 ▲ | (5.97) ▼ |
test-base64-decode | 1.73 | 1.74 | 1.68 | - | - | - | - | (8.71) ▼ |
test-base64-decode-whitespace | 1.94 ▲ | 2.20 | 2.10 | - | - | - | - | (8.64) ▼ |
test-base64-encode | 1.87 | 1.87 | 1.86 | - | - | - | - | (20.67) ▼ |
test-bitwise-ops | 1.90 ⇑ | 2.05 | (2.40) ▼ | (2.50) ▼ | (14.86) ▼ | (21.80) ▼ | - | - |
test-break-fast | 1.23 ▲ | 1.54 | (1.82) ▼ | (1.59) | 1.31 ▲ | 1.41 ⇑ | - | - |
test-break-slow | 7.44 ▲ | 8.48 | (9.45) ▼ | (9.19) ⇓ | 2.84 ▲ | 4.60 ▲ | - | - |
test-buffer-nodejs-read | 2.39 | 2.52 | (2.83) ▼ | (2.88) ▼ | - | - | - | - |
test-buffer-nodejs-write | 3.12 | 3.28 | (3.54) ⇓ | (3.47) | - | - | - | - |
test-buffer-object-read | 2.41 | 2.52 | (2.86) ▼ | (2.90) ▼ | - | - | - | - |
test-buffer-object-write | 3.18 | 3.38 | (3.55) | 3.45 | - | - | - | - |
test-buffer-plain-read | 1.96 | 2.04 | (2.37) ▼ | (2.40) ▼ | - | - | - | - |
test-buffer-plain-write | 1.93 | 2.02 | (2.30) ▼ | (2.19) ⇓ | - | - | - | - |
test-call-apply | 2.37 ▲ | 4.29 | (4.72) ▼ | (5.52) ▼ | 2.52 ▲ | 2.50 ▲ | - | - |
test-call-basic-1 | 6.36 ▲ | 7.52 | (8.44) ▼ | (9.69) ▼ | 6.27 ▲ | (9.65) ▼ | 2.16 ▲ | 5.60 ▲ |
test-call-basic-2 | 6.51 ▲ | 7.56 | (8.50) ▼ | (9.62) ▼ | 4.60 ▲ | (8.83) ▼ | - | - |
test-call-basic-3 | 8.34 ▲ | 9.65 | (10.67) ▼ | (15.86) ▼ | (12.96) ▼ | (15.18) ▼ | - | - |
test-call-basic-4 | 17.56 ⇑ | 19.46 | (21.38) ⇓ | (38.86) ▼ | (42.82) ▼ | (40.11) ▼ | - | - |
test-call-bound-deep | 2.98 ▲ | 27.79 | (30.35) ⇓ | (33.85) ▼ | - | 4.45 ▲ | - | - |
test-call-bound | 2.84 ▲ | 5.53 | (6.87) ▼ | (7.64) ▼ | - | 2.02 ▲ | - | - |
test-call-call | 2.13 ▲ | 3.13 | (3.59) ▼ | (4.22) ▼ | 1.57 ▲ | 1.73 ▲ | - | - |
test-call-native | 11.31 ▲ | 12.90 | (13.89) ⇓ | (14.66) ▼ | (16.99) ▼ | 8.60 ▲ | - | - |
test-call-prop | 3.92 ▲ | 4.43 | (4.90) ▼ | (6.06) ▼ | 3.16 ▲ | (4.69) | - | - |
test-call-proxy-apply-1 | 26.93 | - | - | - | - | - | - | - |
test-call-proxy-pass-1 | 13.81 | - | - | - | - | - | - | - |
test-call-reg | 2.54 ▲ | 3.00 | (3.38) ▼ | (3.85) ▼ | 2.48 ▲ | (3.84) ▼ | - | - |
test-call-reg-new | 4.92 ▲ | 5.96 | (6.98) ▼ | (7.23) ▼ | 3.00 ▲ | 3.38 ▲ | - | - |
test-call-tail-1 | 1.04 ▲ | 1.34 | (1.67) ▼ | (2.40) ▼ | - | (1.82) ▼ | - | - |
test-call-tail-2 | 1.16 ▲ | 2.46 | (2.80) ▼ | (3.52) ▼ | - | 1.99 ▲ | - | - |
test-call-var | 5.50 ▲ | 6.17 | (8.67) ▼ | (8.74) ▼ | 4.87 ▲ | 4.33 ▲ | - | - |
test-closure-inner-functions | 1.27 | 1.33 | (1.82) ▼ | (2.59) ▼ | 0.70 ▲ | 0.26 ▲ | - | - |
test-compile-mandel | 13.12 | 13.44 | (14.50) ⇓ | (17.05) ▼ | 6.45 ▲ | 2.40 ▲ | - | - |
test-compile-mandel-nofrac | 10.06 | 10.31 | (11.52) ▼ | (14.02) ▼ | 6.46 ▲ | 2.40 ▲ | - | - |
test-compile-short | 5.67 | 5.84 | (7.04) ▼ | (9.73) ▼ | 2.32 ▲ | 0.97 ▲ | - | - |
test-compile-string-ascii | (7.93) ▼ | 7.01 | 6.99 | (9.82) ▼ | 6.89 | - | - | - |
test-continue-fast | 1.55 ▲ | 2.06 | (2.25) ⇓ | 2.06 | (2.16) | (2.60) ▼ | - | - |
test-continue-slow | 7.74 ▲ | 8.78 | (10.00) ▼ | (9.26) | 3.66 ▲ | 6.56 ▲ | - | - |
test-empty-loop | 1.78 | 1.84 | (2.42) ▼ | (2.38) ▼ | (6.40) ▼ | (3.59) ▼ | 1.17 ▲ | (5.14) ▼ |
test-empty-loop-slowpath | 0.97 ▲ | 1.10 | (1.81) ▼ | (2.39) ▼ | 1.08 | 0.71 ▲ | - | - |
test-empty-loop-step3 | 1.82 | 1.93 | (2.49) ▼ | (2.49) ▼ | (8.05) ▼ | (7.07) ▼ | - | - |
test-enum-basic | 3.26 | 3.35 | (4.34) ▼ | (4.95) ▼ | 0.71 ▲ | 1.16 ▲ | - | - |
test-equals-fastint | 0.57 ▲ | 0.65 | (0.71) ⇓ | (1.23) ▼ | (2.58) ▼ | (3.36) ▼ | - | - |
test-equals-nonfastint | 0.64 | 0.66 | (0.76) ▼ | (1.34) ▼ | (2.58) ▼ | (4.75) ▼ | - | - |
test-error-create | 1.60 | 1.72 | (2.37) ▼ | (3.72) ▼ | (5.09) ▼ | 0.86 ▲ | - | - |
test-fib-2 | 3.20 ▲ | 3.67 | (4.08) ▼ | (4.70) ▼ | 3.68 | (5.95) ▼ | - | - |
test-fib | 5.90 ⇑ | 6.49 | (8.36) ▼ | (8.62) ▼ | 3.62 ▲ | 5.75 ▲ | 1.44 ▲ | 2.90 ▲ |
test-func-bind | 2.18 ▲ | 3.26 | (4.14) ▼ | (4.27) ▼ | - | 1.01 ▲ | - | - |
test-global-lookup | 6.16 ▲ | 6.89 | (9.00) ▼ | (11.81) ▼ | 4.53 ▲ | 2.75 ▲ | - | - |
test-hello-world | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
test-hex-decode | 4.01 | 4.01 | 4.01 | 4.01 | - | - | - | (13.28) ▼ |
test-hex-encode | 3.21 | 3.21 | 3.22 | - | - | - | - | 1.62 ▲ |
test-jc-serialize-indented | 3.17 ▲ | 3.84 | 3.62 | 3.93 | - | - | - | - |
test-jc-serialize | 2.15 ⇑ | 2.38 | (2.50) | (2.76) ▼ | - | - | - | - |
test-json-parse-hex | 3.47 | 3.52 | 3.51 | - | - | - | - | - |
test-json-parse-integer | 2.90 | 2.96 | (4.10) ▼ | (4.35) ▼ | (23.51) ▼ | - | - | 0.09 ▲ |
test-json-parse-number | 5.09 | 5.23 | 5.13 | 5.30 | 2.70 ▲ | - | - | 0.40 ▲ |
test-json-parse-string | 5.23 | 5.21 | (5.75) ▼ | (5.46) | (51.66) ▼ | - | - | - |
test-json-serialize-fastpath-loop | 3.32 ⇑ | 3.60 | (4.02) ▼ | (4.00) ▼ | (13.44) ▼ | (581.44) ▼ | - | - |
test-json-serialize-forceslow | 9.51 | 9.80 | 9.90 | (12.04) ▼ | 2.40 ▲ | 9.14 | - | - |
test-json-serialize-hex | 1.54 | 1.54 | 1.57 | - | - | - | - | - |
test-json-serialize-indented-deep100 | 1.38 | 1.44 | (1.95) ▼ | (2.70) ▼ | (1.60) ▼ | (149.64) ▼ | - | - |
test-json-serialize-indented-deep25 | 3.17 ▲ | 3.60 | 3.62 | (3.84) | (11.84) ▼ | (280.97) ▼ | - | - |
test-json-serialize-indented-deep500 | 0.94 | 0.94 | (1.34) ▼ | (1.64) ▼ | - | - | - | - |
test-json-serialize-indented | 5.57 ⇑ | 6.12 | (6.51) | (7.06) ▼ | (16.33) ▼ | (108.33) ▼ | - | - |
test-json-serialize | 6.40 | 6.49 | 6.38 | (6.69) | 2.37 ▲ | (9.06) ▼ | - | 0.65 ▲ |
test-json-serialize-jsonrpc-message | 3.11 | 3.28 | 3.33 | 3.32 | - | - | - | - |
test-json-serialize-nofrac | 0.62 | 0.66 | (0.68) | (0.78) ▼ | (1.74) ▼ | (7.26) ▼ | - | - |
test-json-serialize-plainbuf | 2.55 | 2.52 | (31.25) ▼ | 0.07 ▲ | - | - | - | - |
test-json-serialize-slowpath-loop | 3.42 ⇑ | 3.76 | (4.63) ▼ | (6.54) ▼ | - | (11.18) ▼ | - | - |
test-json-string-bench | 2.80 ▲ | 3.19 | (3.76) ▼ | (5.54) ▼ | (53.98) ▼ | - | - | - |
test-json-string-stringify | 10.05 | 10.15 | 10.10 | 10.40 | (11.67) ▼ | - | - | 0.54 ▲ |
test-jx-serialize-bufobj-forceslow | 4.11 ⇑ | 4.48 | (5.13) ▼ | (6.26) ▼ | - | - | - | - |
test-jx-serialize-bufobj | 1.52 ⇑ | 1.67 | 1.72 | (1.82) ⇓ | - | - | - | - |
test-jx-serialize-indented | 3.04 ▲ | 3.48 | 3.54 | (3.86) ▼ | - | - | - | - |
test-jx-serialize | 2.08 ⇑ | 2.24 | (2.38) | (2.63) ▼ | - | - | - | - |
test-mandel | 2.94 | 3.15 | (3.74) ▼ | (4.38) ▼ | (15.22) ▼ | (14.56) ▼ | 1.96 ▲ | - |
test-math-clz32 | 2.21 | - | - | - | - | - | - | - |
test-misc-1dcell | 3.70 | 3.93 | (4.29) ⇓ | (4.86) ▼ | (127.98) ▼ | (8.58) ▼ | - | - |
test-object-garbage-2 | 2.61 ▲ | 3.63 | (5.38) ▼ | (5.43) ▼ | (54.54) ▼ | 3.31 ⇑ | - | - |
test-object-garbage | (4.05) ▼ | 3.33 | (5.17) ▼ | (5.47) ▼ | 2.68 ▲ | 2.78 ▲ | (4.18) ▼ | 0.86 ▲ |
test-object-literal-100 | 7.10 ▲ | 13.97 | (22.64) ▼ | (20.43) ▼ | (30.28) ▼ | 12.54 ▲ | - | - |
test-object-literal-20 | 1.62 ▲ | 2.51 | (3.24) ▼ | (2.82) ▼ | (4.30) ▼ | 2.27 ⇑ | - | - |
test-object-literal-3 | 0.36 ▲ | 0.42 | (0.61) ▼ | (0.57) ▼ | (0.52) ▼ | 0.39 ⇑ | - | - |
test-prop-read-1024 | 3.31 ⇑ | 3.61 | (3.97) ⇓ | (5.17) ▼ | (6.82) ▼ | (4.46) ▼ | - | - |
test-prop-read-16 | 3.32 ⇑ | 3.65 | (4.07) ▼ | (5.48) ▼ | (4.48) ▼ | (4.43) ▼ | - | - |
test-prop-read-256 | 3.27 ⇑ | 3.62 | (4.38) ▼ | (5.37) ▼ | (8.29) ▼ | (4.43) ▼ | - | - |
test-prop-read-32 | 3.32 ⇑ | 3.63 | (3.98) ⇓ | (5.19) ▼ | (5.62) ▼ | (4.44) ▼ | - | - |
test-prop-read-48 | 3.34 ⇑ | 3.63 | (3.98) ⇓ | (5.27) ▼ | (6.52) ▼ | (4.42) ▼ | - | - |
test-prop-read-4 | 3.43 | 3.52 | 3.58 | (4.77) ▼ | (4.00) ▼ | (4.42) ▼ | - | - |
test-prop-read-64 | 3.31 ⇑ | 3.62 | (4.00) ▼ | (5.34) ▼ | (6.52) ▼ | (4.34) ▼ | - | - |
test-prop-read-8 | 3.32 ⇑ | 3.62 | 3.70 | (4.98) ▼ | (4.93) ▼ | (4.43) ▼ | - | - |
test-prop-read-inherited | 4.76 ⇑ | 5.18 | 5.11 | (6.60) ▼ | 4.75 ⇑ | (9.40) ▼ | - | - |
test-prop-read | 3.44 ⇑ | 3.70 | 3.60 | (4.79) ▼ | (3.96) ⇓ | (4.43) ▼ | 1.11 ▲ | 2.58 ▲ |
test-prop-write-1024 | 3.14 | 3.30 | (4.69) ▼ | (4.97) ▼ | (10.39) ▼ | (5.26) ▼ | - | - |
test-prop-write-16 | 3.20 | 3.36 | (4.13) ▼ | (5.05) ▼ | (4.46) ▼ | (5.27) ▼ | - | - |
test-prop-write-256 | 3.14 | 3.30 | (4.06) ▼ | (4.96) ▼ | (8.21) ▼ | (5.32) ▼ | - | - |
test-prop-write-32 | 3.18 ⇑ | 3.46 | (4.02) ▼ | (5.09) ▼ | (5.52) ▼ | (5.32) ▼ | - | - |
test-prop-write-48 | 3.22 | 3.34 | (4.04) ▼ | (4.98) ▼ | (6.57) ▼ | (5.29) ▼ | - | - |
test-prop-write-4 | 3.20 ⇑ | 3.45 | (3.69) | (4.38) ▼ | (3.93) ▼ | (5.30) ▼ | - | - |
test-prop-write-64 | 3.21 | 3.30 | (4.09) ▼ | (5.60) ▼ | (6.55) ▼ | (5.32) ▼ | - | - |
test-prop-write-8 | 3.16 | 3.30 | (3.84) ▼ | (4.52) ▼ | (4.92) ▼ | (5.26) ▼ | - | - |
test-prop-write | 3.25 ▲ | 3.62 | (3.83) | (4.46) ▼ | (3.95) ⇓ | (5.28) ▼ | 1.41 ▲ | 2.71 ▲ |
test-proxy-get | 1.62 ▲ | 2.00 | (2.17) ⇓ | (2.56) ▼ | - | - | - | - |
test-random | 1.61 ▲ | 2.25 | (2.50) ▼ | (6.86) ▼ | 1.14 ▲ | 2.14 | - | - |
test-reflect-ownkeys-sorted | 1.11 | 1.12 | (1.37) ▼ | - | - | - | - | - |
test-reflect-ownkeys-unsorted | 1.12 | 1.14 | (1.37) ▼ | - | - | - | - | - |
test-regexp-case-insensitive-compile | 0.71 ▲ | 28.40 | 27.70 | 25.66 ⇑ | 0.00 ▲ | 0.00 ▲ | - | - |
test-regexp-case-insensitive-execute | 1.69 ▲ | 2.07 | 2.05 | 1.89 ⇑ | (46.32) ▼ | 0.12 ▲ | - | - |
test-regexp-case-sensitive-compile | 1.82 | 1.91 | (2.25) ▼ | (2.79) ▼ | 0.90 ▲ | 0.66 ▲ | - | - |
test-regexp-case-sensitive-execute | 1.59 | 1.64 | (1.96) ▼ | (2.55) ▼ | 0.65 ▲ | 1.60 | - | - |
test-regexp-compile | 2.45 | 2.56 | (2.92) ▼ | (3.67) ▼ | 2.02 ▲ | 0.57 ▲ | - | - |
test-regexp-execute | 1.81 | 1.91 | (2.20) ▼ | (2.81) ▼ | (2.30) ▼ | 1.54 ▲ | - | - |
test-regexp-string-parse | 8.08 | 8.08 | 8.25 | (13.23) ▼ | - | - | - | 0.75 ▲ |
test-reg-readwrite-object | 4.54 | 4.60 | (5.24) ▼ | 4.70 | (10.75) ▼ | (18.71) ▼ | 2.31 ▲ | - |
test-reg-readwrite-plain | 2.87 | 3.08 | (4.37) ▼ | 3.05 | (10.85) ▼ | (14.85) ▼ | 2.32 ▲ | (7.01) ▼ |
test-strict-equals-fastint | 0.70 ▲ | 0.80 | (0.89) ▼ | (1.56) ▼ | (3.37) ▼ | (4.18) ▼ | - | - |
test-strict-equals-nonfastint | 0.76 ▲ | 0.85 | (0.96) ▼ | (1.67) ▼ | (3.38) ▼ | (5.62) ▼ | - | - |
test-string-array-concat | 6.66 | 6.70 | (7.74) ▼ | (8.38) ▼ | (320.63) ▼ | - | 2.72 ▲ | 4.48 ▲ |
test-string-arridx | 1.81 ▲ | 2.15 | (2.30) | (2.44) ▼ | 1.32 ▲ | 2.00 | - | - |
test-string-charlen-ascii | 1.42 | 1.44 | (1.51) | (1.69) ▼ | (6.20) ▼ | 0.99 ▲ | - | - |
test-string-charlen-nonascii | 3.38 | 3.34 | 3.32 | (3.53) | (9.84) ▼ | 0.68 ▲ | - | - |
test-string-compare | 2.63 ▲ | 3.13 | (3.30) | (5.10) ▼ | - | - | (6.24) ▼ | (12.66) ▼ |
test-string-decodeuri | 5.53 | 5.74 | 5.59 | 5.33 ⇑ | 2.98 ▲ | - | - | - |
test-string-encodeuri | 5.40 ▲ | 6.08 | 6.26 | 5.76 | 5.06 ▲ | - | - | - |
test-string-garbage | 4.49 ▲ | 5.16 | (6.46) ▼ | (7.31) ▼ | 2.41 ▲ | 2.55 ▲ | 2.14 ▲ | 2.31 ▲ |
test-string-intern-grow2 | 0.78 | 0.80 | (2.28) ▼ | (2.29) ▼ | - | - | - | - |
test-string-intern-grow | 5.10 | 5.14 | (26.30) ▼ | (25.72) ▼ | - | - | - | - |
test-string-intern-grow-short2 | 4.29 ⇑ | 4.73 | (6.30) ▼ | (6.73) ▼ | - | - | - | - |
test-string-intern-grow-short | 4.45 ⇑ | 4.84 | (15.58) ▼ | (15.78) ▼ | - | - | - | - |
test-string-intern-match | 0.22 ▲ | 0.26 | (0.31) ▼ | (0.32) ▼ | - | - | - | - |
test-string-intern-match-short | 1.98 ▲ | 2.28 | (3.42) ▼ | (3.37) ▼ | - | - | - | - |
test-string-intern-miss | 0.39 | 0.41 | (1.46) ▼ | (1.48) ▼ | - | - | - | - |
test-string-intern-miss-short | 2.34 ▲ | 2.66 | (4.22) ▼ | (4.40) ▼ | - | - | - | - |
test-string-number-list | 0.72 ▲ | 0.82 | (1.39) ▼ | (1.92) ▼ | (9.56) ▼ | - | - | - |
test-string-plain-concat | (0.60) ⇓ | 0.56 | (1.12) ▼ | (1.29) ▼ | (1.26) ▼ | (0.66) ▼ | (0.76) ▼ | 0.00 ▲ |
test-string-scan-nonascii | 4.96 | 5.29 | 4.96 | 5.41 | (63.81) ▼ | (19.89) ▼ | - | - |
test-string-uppercase | 3.33 | 3.52 | 3.55 | 3.58 | (6.19) ▼ | - | - | 1.68 ▲ |
test-textdecoder-ascii | (4.03) ▼ | 3.41 | 3.12 ⇑ | - | - | - | - | - |
test-textdecoder-nonascii | 3.56 | 3.48 | (4.26) ▼ | - | - | - | - | - |
test-textencoder-ascii | 6.87 | 6.98 | 6.92 | - | - | - | - | - |
test-textencoder-nonascii | 13.27 ⇑ | 14.28 | (15.00) | - | - | - | - | - |
test-try-catch-nothrow | (4.34) | 4.20 | 4.27 | 3.74 ▲ | 3.08 ▲ | (4.37) | - | - |
test-try-catch-throw | 36.55 | 38.93 | (54.91) ▼ | (56.57) ▼ | 30.04 ▲ | 20.73 ▲ | - | - |
test-try-finally-nothrow | 5.18 | 5.10 | 5.18 | 4.87 | 2.90 ▲ | 4.93 | - | - |
test-try-finally-throw | 46.46 ▲ | 62.60 | (73.86) ▼ | (75.10) ▼ | 33.72 ▲ | 26.64 ▲ | - | - |
Duktape microbenchmarks, full
Baseline is duk.O2.210, compared to duk.O2.220. Lower is better, lowest of 5 runs.
duk-perf-pgo.O2.220 | duk-pgo.O2.220 | duk-perf.O2.220 | duk.O2.220 | duk.O2.210 | duk.O2.200 | duk.O2.150 | mujs | jerry | lua | python | perl | ruby | luajit | rhino | nodejs | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
test-add-fastint | 0.49 ▲ | 0.59 ▲ | 0.65 ▲ | 0.67 ⇑ | 0.74 | (0.86) ▼ | (0.91) ▼ | (4.37) ▼ | (2.96) ▼ | - | - | - | - | - | 0.36 ▲ | 0.04 ▲ |
test-add-float | 0.56 ▲ | 0.65 | 0.60 ▲ | 0.71 | 0.69 | (0.87) ▼ | (0.91) ▼ | (4.40) ▼ | (4.14) ▼ | - | - | - | - | - | 0.34 ▲ | 0.04 ▲ |
test-add-int | 0.53 ▲ | 0.59 ▲ | 0.66 ⇑ | 0.70 | 0.72 | (0.86) ▼ | (0.94) ▼ | (4.47) ▼ | (4.74) ▼ | - | - | - | - | - | 0.34 ▲ | 0.06 ▲ |
test-add-nan-fastint | 0.67 ▲ | (0.79) | 0.71 | (0.89) ▼ | 0.76 | (0.90) ▼ | (0.99) ▼ | (4.38) ▼ | (3.49) ▼ | - | - | - | - | - | 0.33 ▲ | 0.05 ▲ |
test-add-nan | 0.55 ▲ | 0.64 ⇑ | 0.60 ▲ | 0.70 | 0.70 | (0.86) ▼ | (0.91) ▼ | (4.38) ▼ | (4.15) ▼ | - | - | - | - | - | 0.34 ▲ | 0.05 ▲ |
test-add-string | 13.89 ▲ | 13.76 ▲ | 13.93 ▲ | 14.26 ▲ | 16.86 | (17.97) | (18.83) ▼ | 9.97 ▲ | 13.22 ▲ | - | - | - | - | - | 0.36 ▲ | 0.05 ▲ |
test-arith-add | 1.96 ▲ | 2.36 ▲ | 2.62 ▲ | 2.72 ⇑ | 2.95 | (3.48) ▼ | (3.74) ▼ | (17.45) ▼ | (16.58) ▼ | - | - | - | - | - | 0.50 ▲ | 0.05 ▲ |
test-arith-add-string | 1.37 ▲ | 1.38 ▲ | 1.37 ▲ | 1.40 ▲ | 1.70 | (1.82) ⇓ | (1.88) ▼ | 1.00 ▲ | 1.31 ▲ | - | - | - | - | - | 0.58 ▲ | 0.04 ▲ |
test-arith-div | 6.93 ▲ | 8.12 | 7.61 | 7.69 | 7.92 | (8.42) | (9.29) ▼ | (12.20) ▼ | (21.04) ▼ | - | - | - | - | - | 0.57 ▲ | 0.05 ▲ |
test-arith-mod | 6.95 | 7.22 | 6.32 ▲ | 6.87 | 7.35 | 7.52 | (8.76) ▼ | (14.80) ▼ | (25.42) ▼ | - | - | - | - | - | 5.39 ▲ | 0.06 ▲ |
test-arith-mul | 3.80 | (4.16) | 3.42 ▲ | 3.93 | 4.00 | (4.30) ⇓ | (5.13) ▼ | (12.05) ▼ | (16.42) ▼ | - | - | - | - | - | 0.54 ▲ | 0.05 ▲ |
test-arith-sub | 1.86 ▲ | 2.24 ▲ | 2.62 ▲ | 2.82 | 2.98 | (3.54) ▼ | (3.96) ▼ | (12.21) ▼ | (16.92) ▼ | - | - | - | - | - | 0.53 ▲ | 0.06 ▲ |
test-array-append | 0.44 ▲ | 0.48 | 0.52 | (0.53) | 0.51 | (0.69) ▼ | (0.76) ▼ | (48.00) ▼ | - | - | - | - | - | - | (0.62) ▼ | 0.09 ▲ |
test-array-cons-list | 0.55 ▲ | 0.57 ▲ | 0.59 ▲ | 0.63 ▲ | 0.72 | (0.96) ▼ | (2.60) ▼ | (8.79) ▼ | (2.22) ▼ | - | - | - | - | - | 0.40 ▲ | 0.08 ▲ |
test-array-foreach | 2.16 ▲ | 2.29 ▲ | 2.04 ▲ | 2.23 ▲ | 2.63 | (2.77) | (3.00) ▼ | (3.69) ▼ | 1.66 ▲ | - | - | - | - | - | 0.84 ▲ | 0.32 ▲ |
test-array-literal-100 | 2.56 ▲ | 2.76 ▲ | 2.60 ▲ | 2.61 ▲ | 4.42 | (6.46) ▼ | (6.72) ▼ | (446.78) ▼ | 3.92 ▲ | - | - | - | - | - | 0.46 ▲ | 0.08 ▲ |
test-array-literal-20 | 0.65 ▲ | 0.69 ▲ | 0.68 ▲ | 0.66 ▲ | 1.11 | (1.73) ▼ | (1.98) ▼ | (59.65) ▼ | 0.91 ▲ | - | - | - | - | - | 0.35 ▲ | 0.04 ▲ |
test-array-literal-3 | 0.26 ▲ | 0.26 ▲ | 0.25 ▲ | 0.26 ▲ | 0.31 | (0.50) ▼ | (0.72) ▼ | (6.15) ▼ | 0.24 ▲ | - | - | - | - | - | (0.33) | 0.04 ▲ |
test-array-pop | 1.18 ▲ | 1.34 ▲ | 1.55 ▲ | 1.66 ▲ | 2.06 | (2.44) ▼ | (7.94) ▼ | (51.24) ▼ | (7.07) ▼ | 1.17 ▲ | 1.19 ▲ | - | - | 0.30 ▲ | 0.76 ▲ | 0.06 ▲ |
test-array-push | 1.61 ▲ | 1.71 ▲ | 1.92 ▲ | 2.02 ▲ | 2.30 | (2.70) ▼ | (5.35) ▼ | (8.52) ▼ | (4.02) ▼ | 1.03 ▲ | 0.62 ▲ | - | - | 0.34 ▲ | 0.86 ▲ | 0.10 ▲ |
test-array-read | 1.76 ▲ | 1.92 | 1.84 ⇑ | 1.96 | 2.00 | (2.30) ▼ | (3.10) ▼ | (236.50) ▼ | (5.73) ▼ | 1.11 ▲ | (2.18) ⇓ | (3.48) ▼ | 1.68 ▲ | 0.00 ▲ | 0.39 ▲ | 0.04 ▲ |
test-array-read-lenloop | 1.51 ▲ | 1.71 ▲ | 2.04 | 2.14 | 2.16 | (2.43) ▼ | (2.77) ▼ | (123.30) ▼ | (4.57) ▼ | - | - | - | - | - | 0.96 ▲ | 0.06 ▲ |
test-array-sort | (3.61) ⇓ | (3.53) | 3.32 | 3.22 | 3.30 | 3.31 | (3.51) | - | (4.26) ▼ | - | - | - | - | - | 1.61 ▲ | 0.12 ▲ |
test-array-write | 1.64 ▲ | 1.82 | 1.88 | 1.90 | 1.94 | (2.24) ▼ | (3.00) ▼ | (255.16) ▼ | (6.62) ▼ | 1.38 ▲ | (3.06) ▼ | (3.56) ▼ | (2.34) ▼ | 0.00 ▲ | 0.56 ▲ | 0.07 ▲ |
test-array-write-length | 1.34 ▲ | 1.38 ▲ | 1.63 ⇑ | 1.60 ▲ | 1.80 | (1.91) | (3.01) ▼ | (3.67) ▼ | (2.71) ▼ | - | - | - | - | - | 1.13 ▲ | 1.53 ▲ |
test-assign-add | 3.60 ▲ | 4.12 | 3.85 ⇑ | 4.17 | 4.20 | (5.37) ▼ | (6.04) ▼ | (38.24) ▼ | (25.02) ▼ | 3.48 ▲ | (16.02) ▼ | (25.70) ▼ | (9.59) ▼ | 0.00 ▲ | 3.49 ▲ | 0.04 ▲ |
test-assign-addto | 3.63 ▲ | 4.14 | 3.88 ⇑ | 4.18 | 4.19 | (5.33) ▼ | (6.08) ▼ | (37.46) ▼ | (30.29) ▼ | 3.49 ▲ | (17.09) ▼ | (24.98) ▼ | (9.58) ▼ | 1.00 ▲ | 3.88 ⇑ | 0.90 ▲ |
test-assign-addto-nan | 1.10 ⇑ | 1.21 | 1.15 | (1.43) ▼ | 1.21 | (1.44) ▼ | (1.64) ▼ | (8.07) ▼ | (6.44) ▼ | - | - | - | - | - | 0.39 ▲ | 0.30 ▲ |
test-assign-boolean | 5.10 | 5.13 | 5.10 | 5.14 | 5.14 | 5.18 | 5.22 | (10.35) ▼ | (20.94) ▼ | - | - | - | - | - | 0.36 ▲ | 0.05 ▲ |
test-assign-const-int2 | 4.65 ▲ | (6.32) | 5.60 ⇑ | 6.15 | 6.05 | (8.40) ▼ | (10.02) ▼ | (10.61) ▼ | (12.75) ▼ | - | - | - | - | - | 0.36 ▲ | 0.05 ▲ |
test-assign-const-int | 2.27 ▲ | 2.70 ⇑ | 2.92 | 3.01 | 3.00 | (4.20) ▼ | 3.07 | (10.53) ▼ | (12.80) ▼ | 2.53 ▲ | (5.95) ▼ | (25.04) ▼ | (4.87) ▼ | 0.00 ▲ | 0.40 ▲ | 0.04 ▲ |
test-assign-const | 3.53 ▲ | 4.48 ▲ | 4.00 ▲ | 4.18 ▲ | 5.22 | (5.70) ⇓ | 4.43 ▲ | (10.74) ▼ | (18.82) ▼ | 2.55 ▲ | (5.97) ▼ | (25.72) ▼ | 4.86 | 0.00 ▲ | 0.36 ▲ | 0.04 ▲ |
test-assign-literal | 3.88 ⇑ | (4.54) ⇓ | 3.82 ⇑ | (4.42) | 4.23 | (5.40) ▼ | (4.73) ▼ | (10.89) ▼ | (23.24) ▼ | 2.74 ▲ | (13.35) ▼ | - | (4.79) ▼ | 0.00 ▲ | 0.35 ▲ | 0.04 ▲ |
test-assign-proplhs-reg | 2.49 ▲ | 2.51 ▲ | 2.64 ⇑ | 2.68 ⇑ | 2.91 | (3.21) ▼ | (4.06) ▼ | 2.65 ⇑ | (5.62) ▼ | - | - | - | - | - | 2.04 ▲ | 0.07 ▲ |
test-assign-proprhs | 2.01 ▲ | 2.07 ▲ | 2.81 ⇑ | 2.85 | 3.04 | (3.21) | (4.29) ▼ | 2.66 ▲ | (3.98) ▼ | - | - | - | - | - | 1.11 ▲ | 0.04 ▲ |
test-assign-reg | 2.56 ▲ | 3.03 ▲ | 3.20 | 3.27 | 3.41 | (4.80) ▼ | 3.36 | (9.68) ▼ | (17.20) ▼ | 2.52 ▲ | (5.97) ▼ | (25.75) ▼ | (5.18) ▼ | 0.00 ▲ | 0.33 ▲ | 0.04 ▲ |
test-base64-decode | 1.74 | 1.73 | 1.73 | 1.73 | 1.74 | 1.68 | - | - | - | - | (8.71) ▼ | - | - | - | - | - |
test-base64-decode-whitespace | 2.21 | 2.26 | 2.22 | 1.94 ▲ | 2.20 | 2.10 | - | - | - | - | (8.64) ▼ | - | - | - | - | - |
test-base64-encode | (2.07) ▼ | (2.08) ▼ | 1.86 | 1.87 | 1.87 | 1.86 | - | - | - | - | (20.67) ▼ | - | - | - | - | - |
test-bitwise-ops | 1.58 ▲ | 1.88 ⇑ | 1.69 ▲ | 1.90 ⇑ | 2.05 | (2.40) ▼ | (2.50) ▼ | (14.86) ▼ | (21.80) ▼ | - | - | - | - | - | (33.44) ▼ | 0.04 ▲ |
test-break-fast | 0.84 ▲ | 1.14 ▲ | 1.12 ▲ | 1.23 ▲ | 1.54 | (1.82) ▼ | (1.59) | 1.31 ▲ | 1.41 ⇑ | - | - | - | - | - | 0.35 ▲ | 0.06 ▲ |
test-break-slow | 6.38 ▲ | 7.19 ▲ | 6.62 ▲ | 7.44 ▲ | 8.48 | (9.45) ▼ | (9.19) ⇓ | 2.84 ▲ | 4.60 ▲ | - | - | - | - | - | 0.30 ▲ | 0.38 ▲ |
test-buffer-nodejs-read | 2.36 | (2.60) | 2.34 ⇑ | 2.39 | 2.52 | (2.83) ▼ | (2.88) ▼ | - | - | - | - | - | - | - | - | 0.04 ▲ |
test-buffer-nodejs-write | (3.80) ▼ | (4.08) ▼ | 3.10 | 3.12 | 3.28 | (3.54) ⇓ | (3.47) | - | - | - | - | - | - | - | - | 0.08 ▲ |
test-buffer-object-read | 2.34 ⇑ | (2.64) | 2.36 | 2.41 | 2.52 | (2.86) ▼ | (2.90) ▼ | - | - | - | - | - | - | - | - | 0.04 ▲ |
test-buffer-object-write | (3.82) ▼ | (4.16) ▼ | 3.13 ⇑ | 3.18 | 3.38 | (3.55) | 3.45 | - | - | - | - | - | - | - | - | 0.07 ▲ |
test-buffer-plain-read | 1.84 ⇑ | 2.04 | 1.92 | 1.96 | 2.04 | (2.37) ▼ | (2.40) ▼ | - | - | - | - | - | - | - | - | - |
test-buffer-plain-write | 1.70 ▲ | 1.87 ⇑ | 1.89 | 1.93 | 2.02 | (2.30) ▼ | (2.19) ⇓ | - | - | - | - | - | - | - | - | - |
test-call-apply | 1.74 ▲ | 1.76 ▲ | 2.23 ▲ | 2.37 ▲ | 4.29 | (4.72) ▼ | (5.52) ▼ | 2.52 ▲ | 2.50 ▲ | - | - | - | - | - | 2.18 ▲ | 0.35 ▲ |
test-call-basic-1 | 4.49 ▲ | 4.70 ▲ | 6.11 ▲ | 6.36 ▲ | 7.52 | (8.44) ▼ | (9.69) ▼ | 6.27 ▲ | (9.65) ▼ | 2.16 ▲ | 5.60 ▲ | (8.24) ⇓ | 2.47 ▲ | 0.00 ▲ | 1.51 ▲ | 0.04 ▲ |
test-call-basic-2 | 4.48 ▲ | 4.73 ▲ | 6.18 ▲ | 6.51 ▲ | 7.56 | (8.50) ▼ | (9.62) ▼ | 4.60 ▲ | (8.83) ▼ | - | - | - | - | - | 1.82 ▲ | 0.03 ▲ |
test-call-basic-3 | 6.31 ▲ | 6.88 ▲ | 7.95 ▲ | 8.34 ▲ | 9.65 | (10.67) ▼ | (15.86) ▼ | (12.96) ▼ | (15.18) ▼ | - | - | - | - | - | 1.87 ▲ | 0.27 ▲ |
test-call-basic-4 | 15.81 ▲ | 15.19 ▲ | 16.45 ▲ | 17.56 ⇑ | 19.46 | (21.38) ⇓ | (38.86) ▼ | (42.82) ▼ | (40.11) ▼ | - | - | - | - | - | 1.76 ▲ | 0.63 ▲ |
test-call-bound-deep | 2.64 ▲ | 2.74 ▲ | 2.93 ▲ | 2.98 ▲ | 27.79 | (30.35) ⇓ | (33.85) ▼ | - | 4.45 ▲ | - | - | - | - | - | 4.31 ▲ | - |
test-call-bound | 2.58 ▲ | 2.62 ▲ | 2.76 ▲ | 2.84 ▲ | 5.53 | (6.87) ▼ | (7.64) ▼ | - | 2.02 ▲ | - | - | - | - | - | 1.44 ▲ | - |
test-call-call | 1.55 ▲ | 1.52 ▲ | 1.94 ▲ | 2.13 ▲ | 3.13 | (3.59) ▼ | (4.22) ▼ | 1.57 ▲ | 1.73 ▲ | - | - | - | - | - | 2.02 ▲ | 0.10 ▲ |
test-call-native | 10.57 ▲ | 11.23 ▲ | 10.24 ▲ | 11.31 ▲ | 12.90 | (13.89) ⇓ | (14.66) ▼ | (16.99) ▼ | 8.60 ▲ | - | - | - | - | - | 1.65 ▲ | 1.54 ▲ |
test-call-prop | 2.54 ▲ | 2.64 ▲ | 3.74 ▲ | 3.92 ▲ | 4.43 | (4.90) ▼ | (6.06) ▼ | 3.16 ▲ | (4.69) | - | - | - | - | - | 1.39 ▲ | 0.26 ▲ |
test-call-proxy-apply-1 | 23.88 | 25.42 | 26.41 | 26.93 | - | - | - | - | - | - | - | - | - | - | - | - |
test-call-proxy-pass-1 | 9.41 | 10.24 | 13.04 | 13.81 | - | - | - | - | - | - | - | - | - | - | - | - |
test-call-reg | 1.79 ▲ | 1.86 ▲ | 2.44 ▲ | 2.54 ▲ | 3.00 | (3.38) ▼ | (3.85) ▼ | 2.48 ▲ | (3.84) ▼ | - | - | - | - | - | 0.99 ▲ | 0.04 ▲ |
test-call-reg-new | 4.25 ▲ | 4.39 ▲ | 4.74 ▲ | 4.92 ▲ | 5.96 | (6.98) ▼ | (7.23) ▼ | 3.00 ▲ | 3.38 ▲ | - | - | - | - | - | 1.55 ▲ | 0.13 ▲ |
test-call-tail-1 | 1.25 | 0.77 ▲ | 0.92 ▲ | 1.04 ▲ | 1.34 | (1.67) ▼ | (2.40) ▼ | - | (1.82) ▼ | - | - | - | - | - | 0.66 ▲ | 0.08 ▲ |
test-call-tail-2 | 1.36 ▲ | 0.92 ▲ | 1.01 ▲ | 1.16 ▲ | 2.46 | (2.80) ▼ | (3.52) ▼ | - | 1.99 ▲ | - | - | - | - | - | 0.86 ▲ | 0.18 ▲ |
test-call-var | 3.08 ▲ | 3.16 ▲ | 5.35 ▲ | 5.50 ▲ | 6.17 | (8.67) ▼ | (8.74) ▼ | 4.87 ▲ | 4.33 ▲ | - | - | - | - | - | 1.05 ▲ | 0.04 ▲ |
test-closure-inner-functions | 1.10 ▲ | 1.21 ⇑ | 1.17 ▲ | 1.27 | 1.33 | (1.82) ▼ | (2.59) ▼ | 0.70 ▲ | 0.26 ▲ | - | - | - | - | - | 1.20 ⇑ | 0.03 ▲ |
test-compile-mandel | 13.31 | 13.34 | 13.11 | 13.12 | 13.44 | (14.50) ⇓ | (17.05) ▼ | 6.45 ▲ | 2.40 ▲ | - | - | - | - | - | 9.13 ▲ | 0.05 ▲ |
test-compile-mandel-nofrac | 10.29 | 10.33 | 10.06 | 10.06 | 10.31 | (11.52) ▼ | (14.02) ▼ | 6.46 ▲ | 2.40 ▲ | - | - | - | - | - | 8.86 ▲ | 0.10 ▲ |
test-compile-short | 5.19 ▲ | 5.69 | 5.30 ⇑ | 5.67 | 5.84 | (7.04) ▼ | (9.73) ▼ | 2.32 ▲ | 0.97 ▲ | - | - | - | - | - | 4.21 ▲ | 0.21 ▲ |
test-compile-string-ascii | 7.05 | 7.02 | (7.81) ▼ | (7.93) ▼ | 7.01 | 6.99 | (9.82) ▼ | 6.89 | - | - | - | - | - | - | (7.34) | 0.04 ▲ |
test-continue-fast | 1.46 ▲ | 1.58 ▲ | 1.86 ⇑ | 1.55 ▲ | 2.06 | (2.25) ⇓ | 2.06 | (2.16) | (2.60) ▼ | - | - | - | - | - | 0.40 ▲ | 0.04 ▲ |
test-continue-slow | 6.98 ▲ | 7.36 ▲ | 7.34 ▲ | 7.74 ▲ | 8.78 | (10.00) ▼ | (9.26) | 3.66 ▲ | 6.56 ▲ | - | - | - | - | - | 0.39 ▲ | 0.45 ▲ |
test-empty-loop | 1.28 ▲ | 1.51 ▲ | (1.98) ⇓ | 1.78 | 1.84 | (2.42) ▼ | (2.38) ▼ | (6.40) ▼ | (3.59) ▼ | 1.17 ▲ | (5.14) ▼ | (3.66) ▼ | (4.26) ▼ | 0.14 ▲ | 0.65 ▲ | 0.09 ▲ |
test-empty-loop-slowpath | 0.80 ▲ | 0.89 ▲ | 0.92 ▲ | 0.97 ▲ | 1.10 | (1.81) ▼ | (2.39) ▼ | 1.08 | 0.71 ▲ | - | - | - | - | - | 0.62 ▲ | 0.06 ▲ |
test-empty-loop-step3 | 1.36 ▲ | 1.56 ▲ | (2.00) | 1.82 | 1.93 | (2.49) ▼ | (2.49) ▼ | (8.05) ▼ | (7.07) ▼ | - | - | - | - | - | 0.62 ▲ | 0.11 ▲ |
test-enum-basic | 2.96 ▲ | 3.13 | 3.26 | 3.26 | 3.35 | (4.34) ▼ | (4.95) ▼ | 0.71 ▲ | 1.16 ▲ | - | - | - | - | - | 1.49 ▲ | (5.64) ▼ |
test-equals-fastint | 0.55 ▲ | 0.56 ▲ | 0.57 ▲ | 0.57 ▲ | 0.65 | (0.71) ⇓ | (1.23) ▼ | (2.58) ▼ | (3.36) ▼ | - | - | - | - | - | (0.92) ▼ | 0.04 ▲ |
test-equals-nonfastint | 0.66 | (0.71) ⇓ | 0.57 ▲ | 0.64 | 0.66 | (0.76) ▼ | (1.34) ▼ | (2.58) ▼ | (4.75) ▼ | - | - | - | - | - | (0.87) ▼ | 0.06 ▲ |
test-error-create | 1.11 ▲ | 1.16 ▲ | 1.50 ▲ | 1.60 | 1.72 | (2.37) ▼ | (3.72) ▼ | (5.09) ▼ | 0.86 ▲ | - | - | - | - | - | 1.06 ▲ | (3.58) ▼ |
test-fib-2 | 2.02 ▲ | 2.27 ▲ | 3.18 ▲ | 3.20 ▲ | 3.67 | (4.08) ▼ | (4.70) ▼ | 3.68 | (5.95) ▼ | - | - | - | - | - | 0.74 ▲ | 0.18 ▲ |
test-fib | 2.70 ▲ | 3.04 ▲ | 5.60 ▲ | 5.90 ⇑ | 6.49 | (8.36) ▼ | (8.62) ▼ | 3.62 ▲ | 5.75 ▲ | 1.44 ▲ | 2.90 ▲ | (7.43) ▼ | 1.28 ▲ | 0.30 ▲ | 1.03 ▲ | 0.17 ▲ |
test-func-bind | 2.07 ▲ | 2.15 ▲ | 2.15 ▲ | 2.18 ▲ | 3.26 | (4.14) ▼ | (4.27) ▼ | - | 1.01 ▲ | - | - | - | - | - | 2.12 ▲ | 2.63 ▲ |
test-global-lookup | 4.47 ▲ | 4.46 ▲ | 6.09 ▲ | 6.16 ▲ | 6.89 | (9.00) ▼ | (11.81) ▼ | 4.53 ▲ | 2.75 ▲ | - | - | - | - | - | 1.28 ▲ | 0.05 ▲ |
test-hello-world | 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 | 0.00 | 0.24 | 0.04 |
test-hex-decode | 4.02 | 4.04 | 4.06 | 4.01 | 4.01 | 4.01 | 4.01 | - | - | - | (13.28) ▼ | - | - | - | - | - |
test-hex-encode | (3.36) | (3.38) | 3.18 | 3.21 | 3.21 | 3.22 | - | - | - | - | 1.62 ▲ | - | - | - | - | - |
test-jc-serialize-indented | (7.03) ▼ | (7.02) ▼ | 3.14 ▲ | 3.17 ▲ | 3.84 | 3.62 | 3.93 | - | - | - | - | - | - | - | - | - |
test-jc-serialize | 2.34 | 2.30 | 2.20 ⇑ | 2.15 ⇑ | 2.38 | (2.50) | (2.76) ▼ | - | - | - | - | - | - | - | - | - |
test-json-parse-hex | (4.56) ▼ | (4.51) ▼ | 3.52 | 3.47 | 3.52 | 3.51 | - | - | - | - | - | - | - | - | - | - |
test-json-parse-integer | 2.97 | (3.13) | 2.97 | 2.90 | 2.96 | (4.10) ▼ | (4.35) ▼ | (23.51) ▼ | - | - | 0.09 ▲ | - | - | - | 2.18 ▲ | 0.35 ▲ |
test-json-parse-number | (5.53) | 5.36 | 5.04 | 5.09 | 5.23 | 5.13 | 5.30 | 2.70 ▲ | - | - | 0.40 ▲ | - | - | - | 1.24 ▲ | 0.21 ▲ |
test-json-parse-string | 5.13 | 5.16 | 5.21 | 5.23 | 5.21 | (5.75) ▼ | (5.46) | (51.66) ▼ | - | - | - | - | - | - | (34.30) ▼ | (10.78) ▼ |
test-json-serialize-fastpath-loop | (6.63) ▼ | (6.66) ▼ | 3.27 ⇑ | 3.32 ⇑ | 3.60 | (4.02) ▼ | (4.00) ▼ | (13.44) ▼ | (581.44) ▼ | - | - | - | - | - | (126.39) ▼ | (33.02) ▼ |
test-json-serialize-forceslow | (10.86) ▼ | (10.79) ▼ | 9.48 | 9.51 | 9.80 | 9.90 | (12.04) ▼ | 2.40 ▲ | 9.14 | - | - | - | - | - | 6.27 ▲ | 0.81 ▲ |
test-json-serialize-hex | (1.62) | (1.65) ⇓ | 1.55 | 1.54 | 1.54 | 1.57 | - | - | - | - | - | - | - | - | - | - |
test-json-serialize-indented-deep100 | (1.74) ▼ | (1.72) ▼ | 1.36 | 1.38 | 1.44 | (1.95) ▼ | (2.70) ▼ | (1.60) ▼ | (149.64) ▼ | - | - | - | - | - | (43.64) ▼ | 0.80 ▲ |
test-json-serialize-indented-deep25 | (7.34) ▼ | (7.48) ▼ | 3.23 ▲ | 3.17 ▲ | 3.60 | 3.62 | (3.84) | (11.84) ▼ | (280.97) ▼ | - | - | - | - | - | (75.34) ▼ | (11.56) ▼ |
test-json-serialize-indented-deep500 | (1.08) ▼ | (1.05) ▼ | 0.92 | 0.94 | 0.94 | (1.34) ▼ | (1.64) ▼ | - | - | - | - | - | - | - | - | 0.82 ▲ |
test-json-serialize-indented | (25.14) ▼ | (21.47) ▼ | 5.57 ⇑ | 5.57 ⇑ | 6.12 | (6.51) | (7.06) ▼ | (16.33) ▼ | (108.33) ▼ | - | - | - | - | - | (28.72) ▼ | (26.86) ▼ |
test-json-serialize | (7.76) ▼ | (7.66) ▼ | 6.42 | 6.40 | 6.49 | 6.38 | (6.69) | 2.37 ▲ | (9.06) ▼ | - | 0.65 ▲ | - | - | - | 6.52 | 0.81 ▲ |
test-json-serialize-jsonrpc-message | 2.00 ▲ | 1.99 ▲ | 2.99 ⇑ | 3.11 | 3.28 | 3.33 | 3.32 | - | - | - | - | - | - | - | - | - |
test-json-serialize-nofrac | 0.64 | 0.66 | 0.61 ⇑ | 0.62 | 0.66 | (0.68) | (0.78) ▼ | (1.74) ▼ | (7.26) ▼ | - | - | - | - | - | (5.20) ▼ | (0.71) ⇓ |
test-json-serialize-plainbuf | 2.48 | 2.49 | 2.49 | 2.55 | 2.52 | (31.25) ▼ | 0.07 ▲ | - | - | - | - | - | - | - | - | - |
test-json-serialize-slowpath-loop | 3.80 | (3.90) | 3.33 ▲ | 3.42 ⇑ | 3.76 | (4.63) ▼ | (6.54) ▼ | - | (11.18) ▼ | - | - | - | - | - | (14.26) ▼ | (3.93) |
test-json-string-bench | 2.25 ▲ | 2.28 ▲ | 2.66 ▲ | 2.80 ▲ | 3.19 | (3.76) ▼ | (5.54) ▼ | (53.98) ▼ | - | - | - | - | - | - | 3.02 | 0.19 ▲ |
test-json-string-stringify | 5.14 ▲ | 5.20 ▲ | 9.42 ⇑ | 10.05 | 10.15 | 10.10 | 10.40 | (11.67) ▼ | - | - | 0.54 ▲ | - | - | - | (19.05) ▼ | 5.40 ▲ |
test-jx-serialize-bufobj-forceslow | 3.78 ▲ | 3.90 ▲ | 4.01 ▲ | 4.11 ⇑ | 4.48 | (5.13) ▼ | (6.26) ▼ | - | - | - | - | - | - | - | - | - |
test-jx-serialize-bufobj | 1.56 | 1.52 ⇑ | 1.47 ▲ | 1.52 ⇑ | 1.67 | 1.72 | (1.82) ⇓ | - | - | - | - | - | - | - | - | - |
test-jx-serialize-indented | (7.22) ▼ | (7.12) ▼ | 3.07 ▲ | 3.04 ▲ | 3.48 | 3.54 | (3.86) ▼ | - | - | - | - | - | - | - | - | - |
test-jx-serialize | (2.34) | (2.37) | 1.98 ▲ | 2.08 ⇑ | 2.24 | (2.38) | (2.63) ▼ | - | - | - | - | - | - | - | - | - |
test-mandel | 2.29 ▲ | 2.64 ▲ | 2.93 | 2.94 | 3.15 | (3.74) ▼ | (4.38) ▼ | (15.22) ▼ | (14.56) ▼ | 1.96 ▲ | - | - | - | 0.19 ▲ | 1.76 ▲ | 0.24 ▲ |
test-math-clz32 | 1.64 | 1.79 | 2.04 | 2.21 | - | - | - | - | - | - | - | - | - | - | - | 0.04 |
test-misc-1dcell | 3.20 ▲ | 3.52 ▲ | 3.70 | 3.70 | 3.93 | (4.29) ⇓ | (4.86) ▼ | (127.98) ▼ | (8.58) ▼ | - | - | - | - | - | 3.20 ▲ | 0.26 ▲ |
test-object-garbage-2 | 2.51 ▲ | 2.59 ▲ | 2.58 ▲ | 2.61 ▲ | 3.63 | (5.38) ▼ | (5.43) ▼ | (54.54) ▼ | 3.31 ⇑ | - | - | - | - | - | 2.96 ▲ | 0.64 ▲ |
test-object-garbage | (3.85) ▼ | (3.98) ▼ | (3.87) ▼ | (4.05) ▼ | 3.33 | (5.17) ▼ | (5.47) ▼ | 2.68 ▲ | 2.78 ▲ | (4.18) ▼ | 0.86 ▲ | - | - | 0.00 ▲ | 1.04 ▲ | 0.46 ▲ |
test-object-literal-100 | 6.77 ▲ | 7.22 ▲ | 7.12 ▲ | 7.10 ▲ | 13.97 | (22.64) ▼ | (20.43) ▼ | (30.28) ▼ | 12.54 ▲ | - | - | - | - | - | 7.88 ▲ | 2.39 ▲ |
test-object-literal-20 | 1.53 ▲ | 1.62 ▲ | 1.60 ▲ | 1.62 ▲ | 2.51 | (3.24) ▼ | (2.82) ▼ | (4.30) ▼ | 2.27 ⇑ | - | - | - | - | - | 1.68 ▲ | 0.57 ▲ |
test-object-literal-3 | 0.32 ▲ | 0.35 ▲ | 0.35 ▲ | 0.36 ▲ | 0.42 | (0.61) ▼ | (0.57) ▼ | (0.52) ▼ | 0.39 ⇑ | - | - | - | - | - | (0.58) ▼ | 0.04 ▲ |
test-prop-read-1024 | 2.43 ▲ | 2.49 ▲ | 3.25 ⇑ | 3.31 ⇑ | 3.61 | (3.97) ⇓ | (5.17) ▼ | (6.82) ▼ | (4.46) ▼ | - | - | - | - | - | 0.90 ▲ | 0.43 ▲ |
test-prop-read-16 | 2.44 ▲ | 2.49 ▲ | 3.24 ▲ | 3.32 ⇑ | 3.65 | (4.07) ▼ | (5.48) ▼ | (4.48) ▼ | (4.43) ▼ | - | - | - | - | - | 0.76 ▲ | 0.03 ▲ |
test-prop-read-256 | 2.44 ▲ | 2.49 ▲ | 3.25 ▲ | 3.27 ⇑ | 3.62 | (4.38) ▼ | (5.37) ▼ | (8.29) ▼ | (4.43) ▼ | - | - | - | - | - | 0.90 ▲ | 0.38 ▲ |
test-prop-read-32 | 2.43 ▲ | 2.50 ▲ | 3.26 ▲ | 3.32 ⇑ | 3.63 | (3.98) ⇓ | (5.19) ▼ | (5.62) ▼ | (4.44) ▼ | - | - | - | - | - | 0.83 ▲ | 0.39 ▲ |
test-prop-read-48 | 2.43 ▲ | 2.51 ▲ | 3.26 ▲ | 3.34 ⇑ | 3.63 | (3.98) ⇓ | (5.27) ▼ | (6.52) ▼ | (4.42) ▼ | - | - | - | - | - | 0.79 ▲ | 0.39 ▲ |
test-prop-read-4 | 2.34 ▲ | 2.46 ▲ | 3.21 ⇑ | 3.43 | 3.52 | 3.58 | (4.77) ▼ | (4.00) ▼ | (4.42) ▼ | - | - | - | - | - | 0.78 ▲ | 0.04 ▲ |
test-prop-read-64 | 2.43 ▲ | 2.52 ▲ | 3.24 ▲ | 3.31 ⇑ | 3.62 | (4.00) ▼ | (5.34) ▼ | (6.52) ▼ | (4.34) ▼ | - | - | - | - | - | 0.86 ▲ | 0.40 ▲ |
test-prop-read-8 | 2.43 ▲ | 2.48 ▲ | 3.26 ⇑ | 3.32 ⇑ | 3.62 | 3.70 | (4.98) ▼ | (4.93) ▼ | (4.43) ▼ | - | - | - | - | - | 0.78 ▲ | 0.05 ▲ |
test-prop-read-inherited | 2.72 ▲ | 2.83 ▲ | 4.48 ▲ | 4.76 ⇑ | 5.18 | 5.11 | (6.60) ▼ | 4.75 ⇑ | (9.40) ▼ | - | - | - | - | - | 1.22 ▲ | 0.04 ▲ |
test-prop-read | 2.36 ▲ | 2.52 ▲ | 3.28 ▲ | 3.44 ⇑ | 3.70 | 3.60 | (4.79) ▼ | (3.96) ⇓ | (4.43) ▼ | 1.11 ▲ | 2.58 ▲ | (4.70) ▼ | (3.95) | 0.00 ▲ | 0.66 ▲ | 0.04 ▲ |
test-prop-write-1024 | 2.92 ▲ | 2.96 ▲ | 3.14 | 3.14 | 3.30 | (4.69) ▼ | (4.97) ▼ | (10.39) ▼ | (5.26) ▼ | - | - | - | - | - | 2.27 ▲ | 0.44 ▲ |
test-prop-write-16 | 2.98 ▲ | 3.04 ⇑ | 3.29 | 3.20 | 3.36 | (4.13) ▼ | (5.05) ▼ | (4.46) ▼ | (5.27) ▼ | - | - | - | - | - | 2.12 ▲ | 0.07 ▲ |
test-prop-write-256 | 2.95 ▲ | 3.06 ⇑ | 3.20 | 3.14 | 3.30 | (4.06) ▼ | (4.96) ▼ | (8.21) ▼ | (5.32) ▼ | - | - | - | - | - | 2.26 ▲ | 0.39 ▲ |
test-prop-write-32 | 2.92 ▲ | 2.96 ▲ | 3.18 ⇑ | 3.18 ⇑ | 3.46 | (4.02) ▼ | (5.09) ▼ | (5.52) ▼ | (5.32) ▼ | - | - | - | - | - | 2.09 ▲ | 0.39 ▲ |
test-prop-write-48 | 2.96 ▲ | 2.97 ▲ | 3.17 | 3.22 | 3.34 | (4.04) ▼ | (4.98) ▼ | (6.57) ▼ | (5.29) ▼ | - | - | - | - | - | 2.07 ▲ | 0.39 ▲ |
test-prop-write-4 | 2.96 ▲ | 3.09 ▲ | 3.21 | 3.20 ⇑ | 3.45 | (3.69) | (4.38) ▼ | (3.93) ▼ | (5.30) ▼ | - | - | - | - | - | 2.08 ▲ | 0.04 ▲ |
test-prop-write-64 | 2.90 ▲ | 2.97 ⇑ | 3.14 | 3.21 | 3.30 | (4.09) ▼ | (5.60) ▼ | (6.55) ▼ | (5.32) ▼ | - | - | - | - | - | 2.29 ▲ | 0.38 ▲ |
test-prop-write-8 | 2.96 ▲ | 2.96 ▲ | 3.16 | 3.16 | 3.30 | (3.84) ▼ | (4.52) ▼ | (4.92) ▼ | (5.26) ▼ | - | - | - | - | - | 2.12 ▲ | 0.08 ▲ |
test-prop-write | 3.04 ▲ | 3.12 ▲ | 3.04 ▲ | 3.25 ▲ | 3.62 | (3.83) | (4.46) ▼ | (3.95) ⇓ | (5.28) ▼ | 1.41 ▲ | 2.71 ▲ | (4.88) ▼ | (5.28) ▼ | 0.00 ▲ | 1.94 ▲ | 0.08 ▲ |
test-proxy-get | 1.41 ▲ | 1.50 ▲ | 1.53 ▲ | 1.62 ▲ | 2.00 | (2.17) ⇓ | (2.56) ▼ | - | - | - | - | - | - | - | - | - |
test-random | 1.15 ▲ | 1.26 ▲ | 1.54 ▲ | 1.61 ▲ | 2.25 | (2.50) ▼ | (6.86) ▼ | 1.14 ▲ | 2.14 | - | - | - | - | - | 1.69 ▲ | 0.47 ▲ |
test-reflect-ownkeys-sorted | - | 1.05 | - | 1.11 | 1.12 | (1.37) ▼ | - | - | - | - | - | - | - | - | - | - |
test-reflect-ownkeys-unsorted | - | 1.10 | - | 1.12 | 1.14 | (1.37) ▼ | - | - | - | - | - | - | - | - | - | - |
test-regexp-case-insensitive-compile | 0.00 ▲ | 0.83 ▲ | 0.00 ▲ | 0.71 ▲ | 28.40 | 27.70 | 25.66 ⇑ | 0.00 ▲ | 0.00 ▲ | - | - | - | - | - | 0.26 ▲ | - |
test-regexp-case-insensitive-execute | 1.75 ▲ | 2.00 | 1.54 ▲ | 1.69 ▲ | 2.07 | 2.05 | 1.89 ⇑ | (46.32) ▼ | 0.12 ▲ | - | - | - | - | - | - | - |
test-regexp-case-sensitive-compile | (1.99) | 1.76 ⇑ | (2.02) | 1.82 | 1.91 | (2.25) ▼ | (2.79) ▼ | 0.90 ▲ | 0.66 ▲ | - | - | - | - | - | 0.96 ▲ | - |
test-regexp-case-sensitive-execute | 1.66 | 1.54 | (1.72) | 1.59 | 1.64 | (1.96) ▼ | (2.55) ▼ | 0.65 ▲ | 1.60 | - | - | - | - | - | 1.26 ▲ | - |
test-regexp-compile | (2.68) | 2.60 | 2.44 | 2.45 | 2.56 | (2.92) ▼ | (3.67) ▼ | 2.02 ▲ | 0.57 ▲ | - | - | - | - | - | 1.76 ▲ | 0.22 ▲ |
test-regexp-execute | 1.68 ▲ | 1.70 ▲ | 1.79 | 1.81 | 1.91 | (2.20) ▼ | (2.81) ▼ | (2.30) ▼ | 1.54 ▲ | - | - | - | - | - | 1.91 | 0.10 ▲ |
test-regexp-string-parse | (14.20) ▼ | (14.23) ▼ | 8.00 | 8.08 | 8.08 | 8.25 | (13.23) ▼ | - | - | - | 0.75 ▲ | - | - | - | - | 0.82 ▲ |
test-reg-readwrite-object | 4.12 ▲ | 4.51 | 4.10 ▲ | 4.54 | 4.60 | (5.24) ▼ | 4.70 | (10.75) ▼ | (18.71) ▼ | 2.31 ▲ | - | (42.13) ▼ | (5.34) ▼ | 0.00 ▲ | 0.70 ▲ | 0.04 ▲ |
test-reg-readwrite-plain | 2.34 ▲ | 2.73 ▲ | 2.88 | 2.87 | 3.08 | (4.37) ▼ | 3.05 | (10.85) ▼ | (14.85) ▼ | 2.32 ▲ | (7.01) ▼ | (45.25) ▼ | (5.37) ▼ | 0.00 ▲ | 0.68 ▲ | 0.03 ▲ |
test-strict-equals-fastint | 0.68 ▲ | 0.70 ▲ | 0.68 ▲ | 0.70 ▲ | 0.80 | (0.89) ▼ | (1.56) ▼ | (3.37) ▼ | (4.18) ▼ | - | - | - | - | - | (1.06) ▼ | 0.04 ▲ |
test-strict-equals-nonfastint | 0.74 ▲ | 0.87 | 0.73 ▲ | 0.76 ▲ | 0.85 | (0.96) ▼ | (1.67) ▼ | (3.38) ▼ | (5.62) ▼ | - | - | - | - | - | (1.08) ▼ | 0.07 ▲ |
test-string-array-concat | 6.24 | 6.48 | 6.75 | 6.66 | 6.70 | (7.74) ▼ | (8.38) ▼ | (320.63) ▼ | - | 2.72 ▲ | 4.48 ▲ | (10.18) ▼ | (8.36) ▼ | 1.14 ▲ | 2.75 ▲ | 0.53 ▲ |
test-string-arridx | 1.78 ▲ | 1.76 ▲ | 1.79 ▲ | 1.81 ▲ | 2.15 | (2.30) | (2.44) ▼ | 1.32 ▲ | 2.00 | - | - | - | - | - | 0.44 ▲ | 0.04 ▲ |
test-string-charlen-ascii | 1.40 | 1.40 | 1.40 | 1.42 | 1.44 | (1.51) | (1.69) ▼ | (6.20) ▼ | 0.99 ▲ | - | - | - | - | - | 0.48 ▲ | 0.03 ▲ |
test-string-charlen-nonascii | (3.51) | 3.27 | (3.47) | 3.38 | 3.34 | 3.32 | (3.53) | (9.84) ▼ | 0.68 ▲ | - | - | - | - | - | 0.53 ▲ | 0.04 ▲ |
test-string-compare | 2.57 ▲ | 2.73 ▲ | 2.54 ▲ | 2.63 ▲ | 3.13 | (3.30) | (5.10) ▼ | - | - | (6.24) ▼ | (12.66) ▼ | (24.32) ▼ | (6.70) ▼ | 0.14 ▲ | (6.58) ▼ | 1.14 ▲ |
test-string-decodeuri | 5.65 | (6.16) ⇓ | 5.23 ⇑ | 5.53 | 5.74 | 5.59 | 5.33 ⇑ | 2.98 ▲ | - | - | - | - | - | - | 3.08 ▲ | 5.73 |
test-string-encodeuri | 6.00 | 5.95 | 5.26 ▲ | 5.40 ▲ | 6.08 | 6.26 | 5.76 | 5.06 ▲ | - | - | - | - | - | - | (8.07) ▼ | (30.98) ▼ |
test-string-garbage | 4.51 ▲ | 4.56 ▲ | 4.38 ▲ | 4.49 ▲ | 5.16 | (6.46) ▼ | (7.31) ▼ | 2.41 ▲ | 2.55 ▲ | 2.14 ▲ | 2.31 ▲ | - | - | 1.79 ▲ | 1.24 ▲ | 0.04 ▲ |
test-string-intern-grow2 | 0.74 ⇑ | 0.74 ⇑ | 0.75 | 0.78 | 0.80 | (2.28) ▼ | (2.29) ▼ | - | - | - | - | - | - | - | - | - |
test-string-intern-grow | 5.12 | 5.28 | 5.14 | 5.10 | 5.14 | (26.30) ▼ | (25.72) ▼ | - | - | - | - | - | - | - | - | - |
test-string-intern-grow-short2 | 4.06 ▲ | 4.18 ▲ | 4.12 ▲ | 4.29 ⇑ | 4.73 | (6.30) ▼ | (6.73) ▼ | - | - | - | - | - | - | - | - | - |
test-string-intern-grow-short | 4.20 ▲ | 4.28 ▲ | 4.27 ▲ | 4.45 ⇑ | 4.84 | (15.58) ▼ | (15.78) ▼ | - | - | - | - | - | - | - | - | - |
test-string-intern-match | 0.21 ▲ | 0.22 ▲ | 0.22 ▲ | 0.22 ▲ | 0.26 | (0.31) ▼ | (0.32) ▼ | - | - | - | - | - | - | - | - | - |
test-string-intern-match-short | 1.84 ▲ | 1.91 ▲ | 1.86 ▲ | 1.98 ▲ | 2.28 | (3.42) ▼ | (3.37) ▼ | - | - | - | - | - | - | - | - | - |
test-string-intern-miss | 0.35 ▲ | 0.38 ⇑ | 0.36 ▲ | 0.39 | 0.41 | (1.46) ▼ | (1.48) ▼ | - | - | - | - | - | - | - | - | - |
test-string-intern-miss-short | 2.23 ▲ | 2.29 ▲ | 2.22 ▲ | 2.34 ▲ | 2.66 | (4.22) ▼ | (4.40) ▼ | - | - | - | - | - | - | - | - | - |
test-string-number-list | 0.58 ▲ | 0.60 ▲ | 0.70 ▲ | 0.72 ▲ | 0.82 | (1.39) ▼ | (1.92) ▼ | (9.56) ▼ | - | - | - | - | - | - | (1.65) ▼ | 0.16 ▲ |
test-string-plain-concat | (0.58) | (0.59) | (0.60) ⇓ | (0.60) ⇓ | 0.56 | (1.12) ▼ | (1.29) ▼ | (1.26) ▼ | (0.66) ▼ | (0.76) ▼ | 0.00 ▲ | 0.54 | 0.56 | (0.80) ▼ | 0.45 ▲ | 0.04 ▲ |
test-string-scan-nonascii | 5.16 | 5.43 | 4.80 ⇑ | 4.96 | 5.29 | 4.96 | 5.41 | (63.81) ▼ | (19.89) ▼ | - | - | - | - | - | 2.04 ▲ | 0.03 ▲ |
test-string-uppercase | (3.76) | (3.86) ⇓ | 3.36 | 3.33 | 3.52 | 3.55 | 3.58 | (6.19) ▼ | - | - | 1.68 ▲ | - | - | - | 2.17 ▲ | 0.13 ▲ |
test-textdecoder-ascii | 3.05 ▲ | 3.06 ▲ | 3.30 | (4.03) ▼ | 3.41 | 3.12 ⇑ | - | - | - | - | - | - | - | - | - | - |
test-textdecoder-nonascii | (4.09) ▼ | (4.08) ▼ | (3.81) ⇓ | 3.56 | 3.48 | (4.26) ▼ | - | - | - | - | - | - | - | - | - | - |
test-textencoder-ascii | (7.21) | (7.19) | 6.56 | 6.87 | 6.98 | 6.92 | - | - | - | - | - | - | - | - | - | - |
test-textencoder-nonascii | (17.04) ▼ | (17.47) ▼ | 13.19 ⇑ | 13.27 ⇑ | 14.28 | (15.00) | - | - | - | - | - | - | - | - | - | - |
test-try-catch-nothrow | 3.87 ⇑ | 4.18 | 4.13 | (4.34) | 4.20 | 4.27 | 3.74 ▲ | 3.08 ▲ | (4.37) | - | - | - | - | - | 0.41 ▲ | 0.12 ▲ |
test-try-catch-throw | 33.60 ▲ | 35.81 ⇑ | 35.05 ⇑ | 36.55 | 38.93 | (54.91) ▼ | (56.57) ▼ | 30.04 ▲ | 20.73 ▲ | - | - | - | - | - | (192.82) ▼ | (103.57) ▼ |
test-try-finally-nothrow | 4.42 ▲ | 5.04 | 4.48 ▲ | 5.18 | 5.10 | 5.18 | 4.87 | 2.90 ▲ | 4.93 | - | - | - | - | - | 0.41 ▲ | 0.46 ▲ |
test-try-finally-throw | 42.94 ▲ | 45.16 ▲ | 44.76 ▲ | 46.46 ▲ | 62.60 | (73.86) ▼ | (75.10) ▼ | 33.72 ▲ | 26.64 ▲ | - | - | - | - | - | (197.95) ▼ | (169.44) ▼ |
Setup
Measurement host:
- "Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz" laptop
Duktape is compiled with:
- gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
gcc -O2
- duk.O2: defaults + debugger and executor interrupt enabled, fastints enabled
- duk-perf.O2: performance-sensitive.yaml as baseline, no debugger or executor interrupt support, fastints enabled
- Profile guided optimization (PGO) uses a dummy training set, https://github.com/svaarala/duktape/blob/d73b35e788660a9a7424f8bbafe8f220d8e99970/Makefile#L92-L97
Note that:
These are microbenchmarks, and don't necessarily represent application performance very well. Microbenchmarks are useful for measuring how well different parts of the engine work.
Only relative numbers matter. Loop counts differ between test cases so the numbers for two tests are not directly comparable. Absolute numbers may also change between test runs if test target is different.
The measurement process is not very accurate: it's based on running the test multiple times and measuring time using the
time
command.