Skip to content

Latest commit

 

History

History
482 lines (472 loc) · 7.05 KB

Performance130.md

File metadata and controls

482 lines (472 loc) · 7.05 KB

Duktape 1.3.0 performance measurement

Measurement host:

  • "Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz" laptop

Duktape is compiled with:

  • gcc-4.8.4 (Ubuntu 14.04.3) on x64
  • gcc -O2
  • debugger and interrupt executor support enabled
  • fastints enabled
  • JSON.stringify() fast path disabled

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.

Performance summary

Testcase duk 1.3.0 duk 1.2.3 duk 1.1.3 rhino lua 5.1 python perl ruby
test-array-read.js 4.13 5.62 7.96 0.99 1.19 5.64 5.34 4.41
test-array-write.js 4.37 6.04 22.21 1.59 1.38 6.30 5.32 6.89
test-bitwise-ops.js 0.85 1.11 5.06 8.41 n/a n/a n/a n/a
test-buffer-nodejs-read.js 4.61 n/a n/a n/a n/a n/a n/a n/a
test-buffer-nodejs-write.js 5.52 n/a n/a n/a n/a n/a n/a n/a
test-buffer-object-read.js 4.62 21.63 25.47 n/a n/a n/a n/a n/a
test-buffer-object-write.js 5.53 24.61 28.58 n/a n/a n/a n/a n/a
test-buffer-plain-read.js 4.24 5.25 7.70 n/a n/a n/a n/a n/a
test-buffer-plain-write.js 3.75 5.28 10.55 n/a n/a n/a n/a n/a
test-call-basic.js 14.42 15.52 20.05 3.87 2.41 9.02 9.70 6.24
test-compile-mandel-nofrac.js 13.21 16.52 18.38 7.54 n/a n/a n/a n/a
test-compile-mandel.js 16.32 19.49 21.45 7.58 n/a n/a n/a n/a
test-compile-short.js 10.17 9.91 11.07 4.11 n/a n/a n/a n/a
test-const-load.js 5.96 9.48 10.88 0.30 2.10 5.41 24.22 4.01
test-empty-loop.js 2.33 3.10 5.73 0.66 0.94 4.50 3.40 3.30
test-fib.js 8.57 9.39 9.77 1.22 1.32 2.39 6.39 1.51
test-global-lookup.js 9.98 10.59 11.52 1.22 n/a n/a n/a n/a
test-hello-world.js 0.00 0.00 0.00 0.23 0.00 0.00 0.00 0.00
test-hex-decode.js 5.30 5.30 9.30 n/a n/a 12.33 n/a n/a
test-hex-encode.js 26.28 26.32 28.56 n/a n/a 2.85 n/a n/a
test-json-integer-parse.js 0.41 0.42 0.41 1.07 n/a 0.07 n/a n/a
test-json-number-parse.js 5.09 4.98 5.23 1.58 n/a 0.29 n/a n/a
test-json-serialize.js 1.56 3.08 3.21 3.29 n/a 0.51 n/a n/a
test-json-string-bench.js 5.41 5.38 6.63 2.11 n/a n/a n/a n/a
test-json-string-parse.js 0.55 2.99 2.99 2.46 n/a n/a n/a n/a
test-json-string-stringify.js 1.23 3.53 3.50 6.15 n/a 0.48 n/a n/a
test-prop-read.js 7.58 8.48 12.00 1.07 1.24 6.17 6.86 14.56
test-prop-write.js 6.95 7.75 11.47 2.14 1.42 6.49 6.91 18.21
test-reg-load.js 2.75 4.29 5.29 0.30 2.25 5.70 n/a 4.04
test-reg-readwrite-object.js 3.72 5.33 7.03 0.34 1.72 4.72 28.35 3.87
test-reg-readwrite-plain.js 2.48 3.93 4.67 0.37 1.72 4.73 30.16 3.98
test-regexp-string-parse.js 10.51 12.59 12.43 n/a n/a 0.46 n/a n/a
test-string-array-concat.js 6.37 7.52 24.43 2.02 2.06 2.83 7.40 7.74
test-string-compare.js 3.76 4.56 6.07 5.67 2.80 4.85 16.13 5.30
test-string-decodeuri.js 3.54 4.10 4.02 1.91 n/a n/a n/a n/a
test-string-encodeuri.js 4.29 6.17 6.24 6.82 n/a n/a n/a n/a
test-string-intern-match.js 2.35 2.36 2.41 n/a n/a n/a n/a n/a
test-string-intern-miss.js 2.51 2.54 2.76 n/a n/a n/a n/a n/a
test-string-plain-concat.js 4.06 4.07 4.06 0.31 0.59 0.00 0.41 0.71
test-string-uppercase.js 2.55 3.28 3.26 2.55 n/a 1.21 n/a n/a