Duktape 2.0.0 performance measurement

Performance summary

duk-perf.O2.200 duk.O2.200 duk.O2.150 mujs jerry lua python perl ruby
test-add-fastint.js 0.55 0.65 0.88 4.04 2.55 n/a n/a n/a n/a
test-add-float.js 0.56 0.71 0.85 4.04 3.87 n/a n/a n/a n/a
test-add-nan-fastint.js 0.63 0.77 0.99 4.04 3.14 n/a n/a n/a n/a
test-add-nan.js 0.55 0.64 0.82 4.03 3.86 n/a n/a n/a n/a
test-arith-add.js 2.24 2.58 3.30 15.93 15.35 n/a n/a n/a n/a
test-arith-div.js 6.95 7.28 8.23 11.17 19.73 n/a n/a n/a n/a
test-arith-mod.js 6.32 6.66 7.84 13.40 23.35 n/a n/a n/a n/a
test-arith-mul.js 3.35 3.66 4.37 10.98 15.89 n/a n/a n/a n/a
test-arith-sub.js 2.33 2.74 3.56 11.09 15.83 n/a n/a n/a n/a
test-array-append.js 0.53 0.53 0.72 43.56 n/a n/a n/a n/a n/a
test-array-cons-list.js 0.81 0.92 2.33 8.18 2.10 n/a n/a n/a n/a
test-array-foreach.js 2.52 2.70 2.73 2.82 1.53 n/a n/a n/a n/a
test-array-literal.js 1.49 1.58 1.80 54.91 0.84 n/a n/a n/a n/a
test-array-pop.js 2.13 2.21 7.35 46.67 6.71 1.10 0.88 n/a n/a
test-array-push.js 2.40 2.54 4.93 7.85 3.63 0.99 0.52 n/a n/a
test-array-read-lenloop.js 1.75 1.88 2.68 113.66 3.94 n/a n/a n/a n/a
test-array-read.js 1.66 1.73 2.10 216.37 4.98 0.94 1.73 3.23 1.44
test-array-sort.js 3.57 3.49 3.46 n/a 3.73 n/a n/a n/a n/a
test-array-write-length.js 1.49 1.70 2.83 3.37 2.52 n/a n/a n/a n/a
test-array-write.js 1.66 1.78 2.64 233.38 5.71 1.13 2.48 3.22 4.02
test-assign-add.js 3.32 3.74 5.21 34.13 22.74 3.19 13.84 24.98 10.17
test-assign-addto-nan.js 1.01 1.25 1.59 7.38 5.56 n/a n/a n/a n/a
test-assign-addto.js 3.34 3.67 5.29 34.43 27.36 3.25 16.20 24.07 10.21
test-assign-boolean.js 4.69 4.68 4.84 9.44 19.35 n/a n/a n/a n/a
test-assign-const-int.js 1.93 2.53 2.57 9.65 11.07 2.10 5.53 22.37 4.02
test-assign-const-int2.js 3.92 5.77 9.00 9.61 11.08 n/a n/a n/a n/a
test-assign-const.js 3.29 4.28 4.28 9.86 15.58 2.14 5.46 22.73 4.06
test-assign-literal.js 3.33 3.75 4.21 9.97 21.68 2.60 12.04 n/a 4.46
test-assign-proplhs-reg.js 2.47 2.67 3.74 2.41 4.91 n/a n/a n/a n/a
test-assign-proprhs.js 2.63 2.92 4.25 2.51 3.54 n/a n/a n/a n/a
test-assign-reg.js 2.46 2.84 2.79 8.90 14.84 2.26 5.75 23.32 4.08
test-base64-decode-whitespace.js 1.89 1.88 n/a n/a n/a n/a 8.73 n/a n/a
test-base64-decode.js 1.53 1.53 n/a n/a n/a n/a 8.69 n/a n/a
test-base64-encode.js 1.68 1.68 n/a n/a n/a n/a 17.08 n/a n/a
test-bitwise-ops.js 1.53 1.89 2.61 14.40 21.07 n/a n/a n/a n/a
test-break-fast.js 1.30 1.52 1.61 1.22 1.14 n/a n/a n/a n/a
test-break-slow.js 6.76 7.43 8.00 2.55 4.15 n/a n/a n/a n/a
test-buffer-nodejs-read.js 2.10 2.31 2.64 n/a n/a n/a n/a n/a n/a
test-buffer-nodejs-write.js 2.79 3.03 3.14 n/a n/a n/a n/a n/a n/a
test-buffer-object-read.js 2.09 2.30 2.60 n/a n/a n/a n/a n/a n/a
test-buffer-object-write.js 2.79 3.05 3.15 n/a n/a n/a n/a n/a n/a
test-buffer-plain-read.js 1.73 1.89 2.25 n/a n/a n/a n/a n/a n/a
test-buffer-plain-write.js 1.72 1.79 1.82 n/a n/a n/a n/a n/a n/a
test-call-basic-1.js 7.29 7.72 9.25 6.53 9.09 2.23 5.29 7.87 3.40
test-call-basic-2.js 7.41 7.73 9.21 4.90 8.18 n/a n/a n/a n/a
test-call-basic-3.js 9.09 9.77 15.00 12.43 14.31 n/a n/a n/a n/a
test-call-basic-4.js 16.02 17.89 37.31 34.48 35.17 n/a n/a n/a n/a
test-call-native.js 12.44 13.39 13.92 17.19 7.69 n/a n/a n/a n/a
test-call-prop.js 3.99 4.22 5.78 2.87 4.13 n/a n/a n/a n/a
test-call-reg-new.js 6.28 6.40 6.70 2.73 3.22 n/a n/a n/a n/a
test-call-reg.js 2.83 3.00 3.60 2.28 3.36 n/a n/a n/a n/a
test-call-var.js 7.77 8.26 8.05 4.36 3.79 n/a n/a n/a n/a
test-compile-mandel-nofrac.js 10.90 10.69 13.29 5.90 2.22 n/a n/a n/a n/a
test-compile-mandel.js 13.96 13.72 16.50 5.84 2.24 n/a n/a n/a n/a
test-compile-short.js 6.38 6.80 9.88 2.11 0.86 n/a n/a n/a n/a
test-compile-string-ascii.js 6.66 6.70 9.17 6.32 n/a n/a n/a n/a n/a
test-continue-fast.js 1.68 1.84 2.23 1.96 2.20 n/a n/a n/a n/a
test-continue-slow.js 7.49 7.88 8.35 3.32 5.91 n/a n/a n/a n/a
test-empty-loop-slowpath.js 1.49 1.68 2.01 0.99 0.68 n/a n/a n/a n/a
test-empty-loop.js 1.62 1.65 2.27 5.87 3.16 1.00 4.54 3.44 3.34
test-enum-basic.js 3.98 3.99 4.53 0.68 1.06 n/a n/a n/a n/a
test-equals-fastint.js 0.51 0.61 1.17 2.37 2.87 n/a n/a n/a n/a
test-equals-nonfastint.js 0.51 0.62 1.23 2.35 3.93 n/a n/a n/a n/a
test-error-create.js 2.13 2.12 3.31 4.76 0.80 n/a n/a n/a n/a
test-fib.js 6.32 6.96 7.78 3.30 4.98 1.40 2.45 6.45 1.54
test-global-lookup.js 7.80 7.87 10.26 4.15 2.20 n/a n/a n/a n/a
test-hello-world.js 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
test-hex-decode.js 3.59 3.65 3.68 n/a n/a n/a 12.71 n/a n/a
test-hex-encode.js 2.81 2.82 n/a n/a n/a n/a 1.42 n/a n/a
test-jc-serialize-indented.js 3.33 3.40 3.56 n/a n/a n/a n/a n/a n/a
test-jc-serialize.js 2.09 2.22 2.46 n/a n/a n/a n/a n/a n/a
test-json-parse-hex.js 3.16 3.23 n/a n/a n/a n/a n/a n/a n/a
test-json-parse-integer.js 3.93 3.82 4.08 21.09 n/a n/a 0.07 n/a n/a
test-json-parse-number.js 5.23 5.15 5.23 2.41 n/a n/a 0.29 n/a n/a
test-json-parse-string.js 5.57 5.82 5.80 45.21 n/a n/a n/a n/a n/a
test-json-serialize-fastpath-loop.js 3.66 3.61 3.61 12.61 532.24 n/a n/a n/a n/a
test-json-serialize-forceslow.js 9.70 9.08 11.19 2.19 8.86 n/a n/a n/a n/a
test-json-serialize-hex.js 1.44 1.49 n/a n/a n/a n/a n/a n/a n/a
test-json-serialize-indented-deep100.js 1.77 1.77 2.45 1.52 135.92 n/a n/a n/a n/a
test-json-serialize-indented-deep25.js 3.11 3.25 3.31 10.34 240.02 n/a n/a n/a n/a
test-json-serialize-indented-deep500.js 1.24 1.17 1.57 n/a n/a n/a n/a n/a n/a
test-json-serialize-indented.js 5.80 5.91 6.34 14.83 106.53 n/a n/a n/a n/a
test-json-serialize-jsonrpc-message.js 1.98 1.97 1.99 n/a n/a n/a n/a n/a n/a
test-json-serialize-nofrac.js 0.59 0.61 0.67 1.56 7.26 n/a n/a n/a n/a
test-json-serialize-slowpath-loop.js 4.27 4.28 6.04 n/a 6.08 n/a n/a n/a n/a
test-json-serialize.js 6.25 5.87 6.18 2.20 8.78 n/a 0.51 n/a n/a
test-json-string-bench.js 3.41 3.49 5.29 49.96 n/a n/a n/a n/a n/a
test-json-string-stringify.js 5.12 5.17 5.19 10.73 n/a n/a 0.48 n/a n/a
test-jx-serialize-bufobj-forceslow.js 4.66 4.83 5.61 n/a n/a n/a n/a n/a n/a
test-jx-serialize-bufobj.js 1.50 1.57 1.65 n/a n/a n/a n/a n/a n/a
test-jx-serialize-indented.js 3.20 3.40 3.50 n/a n/a n/a n/a n/a n/a
test-jx-serialize.js 2.15 2.23 2.44 n/a n/a n/a n/a n/a n/a
test-mandel.js 2.48 2.98 4.36 13.94 13.15 1.60 n/a n/a n/a
test-object-garbage-2.js 4.71 4.91 4.87 49.95 2.59 n/a n/a n/a n/a
test-object-garbage.js 4.47 4.51 4.37 2.37 2.76 3.44 0.66 n/a n/a
test-object-literal.js 2.80 2.88 2.54 3.89 2.28 n/a n/a n/a n/a
test-prop-read-4.js 3.14 3.52 4.75 3.65 3.95 n/a n/a n/a n/a
test-prop-read-8.js 3.27 3.83 4.96 4.52 3.93 n/a n/a n/a n/a
test-prop-read.js 3.15 3.64 4.80 3.81 3.94 1.08 2.37 4.89 11.20
test-prop-write-1024.js 3.73 3.33 5.12 9.93 4.48 n/a n/a n/a n/a
test-prop-write-16.js 3.18 3.78 4.58 4.48 4.49 n/a n/a n/a n/a
test-prop-write-256.js 3.35 3.92 4.96 8.36 4.68 n/a n/a n/a n/a
test-prop-write-32.js 3.82 3.44 6.82 5.55 4.66 n/a n/a n/a n/a
test-prop-write-4.js 2.87 3.13 4.37 3.75 4.68 n/a n/a n/a n/a
test-prop-write-48.js 5.56 4.62 5.40 6.62 4.61 n/a n/a n/a n/a
test-prop-write-64.js 4.41 4.15 4.97 6.75 4.75 n/a n/a n/a n/a
test-prop-write-8.js 3.09 3.53 4.50 4.66 4.65 n/a n/a n/a n/a
test-prop-write.js 2.92 3.23 4.39 3.89 4.65 1.22 2.56 5.12 15.57
test-random.js 2.20 2.30 6.49 1.06 1.93 n/a n/a n/a n/a
test-reg-readwrite-object.js 3.00 3.09 3.21 7.80 13.44 1.77 n/a 29.13 3.97
test-reg-readwrite-plain.js 1.78 2.03 2.05 7.73 10.82 1.73 4.83 30.80 4.00
test-regexp-case-insensitive.js 0.00 24.82 24.51 0.00 0.00 n/a n/a n/a n/a
test-regexp-compile.js 2.14 2.17 2.69 1.50 0.43 n/a n/a n/a n/a
test-regexp-execute.js 1.54 1.49 1.89 1.57 1.08 n/a n/a n/a n/a
test-regexp-string-parse.js 5.94 5.99 9.70 n/a n/a n/a 0.51 n/a n/a
test-strict-equals-fastint.js 0.49 0.58 1.17 2.45 3.04 n/a n/a n/a n/a
test-strict-equals-nonfastint.js 0.57 0.63 1.24 2.43 3.84 n/a n/a n/a n/a
test-string-array-concat.js 5.43 5.52 6.67 256.24 n/a 2.11 2.84 7.56 7.90
test-string-charlen-ascii.js 1.12 1.07 1.34 4.72 0.75 n/a n/a n/a n/a
test-string-charlen-nonascii.js 2.65 2.67 2.82 7.11 0.50 n/a n/a n/a n/a
test-string-compare.js 1.85 2.13 3.84 769.37 n/a 2.82 4.93 16.59 5.43
test-string-decodeuri.js 3.61 3.60 3.72 2.13 n/a n/a n/a n/a n/a
test-string-encodeuri.js 4.06 4.05 4.04 3.61 n/a n/a n/a n/a n/a
test-string-garbage.js 5.15 4.94 5.38 1.72 1.81 1.54 1.49 n/a n/a
test-string-intern-grow-short.js 11.74 11.57 11.91 n/a n/a n/a n/a n/a n/a
test-string-intern-grow-short2.js 4.61 4.59 5.00 n/a n/a n/a n/a n/a n/a
test-string-intern-grow.js 20.53 20.26 19.92 n/a n/a n/a n/a n/a n/a
test-string-intern-grow2.js 1.79 1.79 1.79 n/a n/a n/a n/a n/a n/a
test-string-intern-match-short.js 2.59 2.64 2.50 n/a n/a n/a n/a n/a n/a
test-string-intern-match.js 0.22 0.23 0.26 n/a n/a n/a n/a n/a n/a
test-string-intern-miss-short.js 2.97 3.09 3.28 n/a n/a n/a n/a n/a n/a
test-string-intern-miss.js 1.14 1.20 1.19 n/a n/a n/a n/a n/a n/a
test-string-plain-concat.js 0.89 0.86 1.09 1.03 0.52 0.63 0.00 0.40 0.77
test-string-uppercase.js 2.32 2.21 2.23 4.48 n/a n/a 1.27 n/a n/a
test-textdecoder-ascii.js 2.84 2.79 n/a n/a n/a n/a n/a n/a n/a
test-textdecoder-nonascii.js 2.79 2.77 n/a n/a n/a n/a n/a n/a n/a
test-textencoder-ascii.js 3.98 4.19 n/a n/a n/a n/a n/a n/a n/a
test-textencoder-nonascii.js 11.27 11.21 n/a n/a n/a n/a n/a n/a n/a
test-try-catch-nothrow.js 2.65 2.59 2.93 2.21 3.18 n/a n/a n/a n/a
test-try-catch-throw.js 37.57 38.32 38.83 20.59 14.89 n/a n/a n/a n/a
test-try-finally-nothrow.js 2.97 3.39 3.71 2.06 3.63 n/a n/a n/a n/a
test-try-finally-throw.js 47.16 48.88 48.66 22.93 17.85 n/a n/a n/a n/a

Setup

Measurement host:

Duktape is compiled with:

Note that: