Skip to content

Instantly share code, notes, and snippets.

@misterdjules
Last active December 21, 2015 19:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save misterdjules/eec44ea777639d8e8fef to your computer and use it in GitHub Desktop.
Save misterdjules/eec44ea777639d8e8fef to your computer and use it in GitHub Desktop.
joyent/node:#8160 benchmark for SmartOS and Linux

Linux non linear insert v0.10

Requests/sec:   7895.62
     14    0.2%    0.6%  LazyCompile: *exports._unrefActive timers.js:479
Requests/sec:   9009.89
     13    0.1%    0.5%  LazyCompile: *exports._unrefActive timers.js:479
Requests/sec:   8597.20
      5    0.1%    0.1%  LazyCompile: *exports._unrefActive timers.js:479
Requests/sec:   8611.95
     19    0.2%    0.7%  LazyCompile: *exports._unrefActive timers.js:479
Requests/sec:   8757.50
     10    0.1%    0.2%  LazyCompile: *exports._unrefActive timers.js:479
Requests/sec:   8855.56
      4    0.0%    0.1%  LazyCompile: *exports._unrefActive timers.js:479
Requests/sec:   8611.19
      6    0.1%    0.1%  LazyCompile: *exports._unrefActive timers.js:479
Requests/sec:   8620.81
     14    0.2%    0.3%  LazyCompile: *exports._unrefActive timers.js:479
Requests/sec:   8259.96
      3    0.0%    0.1%  LazyCompile: *exports._unrefActive timers.js:479
Requests/sec:   8825.59
     15    0.2%    0.5%  LazyCompile: *exports._unrefActive timers.js:479

Linux linear insert (original version) v0.10

Requests/sec:   6513.13
    355    3.9%    5.3%  LazyCompile: *exports._unrefActive timers.js:440
      1    0.0%    0.0%  LazyCompile: ~exports._unrefActive timers.js:440
    355    3.9%  LazyCompile: *exports._unrefActive timers.js:440
    198   99.5%    LazyCompile: *exports._unrefActive timers.js:440
Requests/sec:   6678.50
    641    7.1%   16.1%  LazyCompile: *exports._unrefActive timers.js:440
    641    7.1%  LazyCompile: *exports._unrefActive timers.js:440
    376   98.7%    LazyCompile: *exports._unrefActive timers.js:440
Requests/sec:   6177.64
    810    8.7%   17.7%  LazyCompile: *exports._unrefActive timers.js:440
    810    8.7%  LazyCompile: *exports._unrefActive timers.js:440
    459   99.8%    LazyCompile: *exports._unrefActive timers.js:440
      6    2.4%    LazyCompile: *exports._unrefActive timers.js:440
Requests/sec:   6758.23
    687    7.4%   16.2%  LazyCompile: *exports._unrefActive timers.js:440
    687    7.4%  LazyCompile: *exports._unrefActive timers.js:440
    423   99.3%    LazyCompile: *exports._unrefActive timers.js:440
Requests/sec:   6886.26
    549    6.1%   13.4%  LazyCompile: *exports._unrefActive timers.js:440
    549    6.1%  LazyCompile: *exports._unrefActive timers.js:440
    316   99.1%    LazyCompile: *exports._unrefActive timers.js:440
Requests/sec:   6779.59
    394    4.4%    6.6%  LazyCompile: *exports._unrefActive timers.js:440
    394    4.4%  LazyCompile: *exports._unrefActive timers.js:440
    231   99.1%    LazyCompile: *exports._unrefActive timers.js:440
Requests/sec:   6877.17
    607    6.7%   14.7%  LazyCompile: *exports._unrefActive timers.js:440
      1    0.0%    0.0%  LazyCompile: ~exports._unrefActive timers.js:440
    607    6.7%  LazyCompile: *exports._unrefActive timers.js:440
    344   98.6%    LazyCompile: *exports._unrefActive timers.js:440
Requests/sec:   6769.55
    750    8.2%   18.4%  LazyCompile: *exports._unrefActive timers.js:440
    750    8.2%  LazyCompile: *exports._unrefActive timers.js:440
    356  100.0%    LazyCompile: *exports._unrefActive timers.js:440
Requests/sec:   6775.62
    648    7.1%   15.4%  LazyCompile: *exports._unrefActive timers.js:440
    648    7.1%  LazyCompile: *exports._unrefActive timers.js:440
    393   98.5%    LazyCompile: *exports._unrefActive timers.js:440
Requests/sec:   6369.18
    687    7.5%   18.0%  LazyCompile: *exports._unrefActive timers.js:440
    687    7.5%  LazyCompile: *exports._unrefActive timers.js:440
    415   99.5%    LazyCompile: *exports._unrefActive timers.js:440
#!/bin/bash
# Usage: WRK=/path/to/wrk/binary NODE=/path/to/node/binary ../linux-benchmark.sh
#set -x
NODE=${NODE:-node}
NODE_DIR=$(dirname ${NODE})
D8_SRC=${D8_SRC:-./deps/v8}
# order of source files matters
D8_PROFILER_JS_SRC=(./deps/v8/tools/splaytree.js \
./deps/v8/tools/codemap.js \
./deps/v8/tools/csvparser.js \
./deps/v8/tools/consarray.js \
./deps/v8/tools/profile.js \
./deps/v8/tools/profile_view.js \
./deps/v8/tools/logreader.js \
./deps/v8/tools/tickprocessor.js \
./deps/v8/tools/tickprocessor-driver.js)
WRK=${WRK:-wrk}
WRK_OPTIONS=${WRK_OPTIONS:--t12 -c400 -d10s}
HTTP_PORT=4242
NB_RUNS=${NB_RUNS:-10}
read -r -d '' SIMPLE_HTTP_SERVER <<EOS
var http = require('http');
var server = http.createServer(function (req, res) {
res.end();
})
server.listen(${HTTP_PORT}, function() {
});
EOS
for TEST_RUN in $(seq 1 ${NB_RUNS}); do
$NODE --prof -e "${SIMPLE_HTTP_SERVER}" &
NODE_PID=$!
sleep 1;
$WRK ${WRK_OPTIONS} http://127.0.0.1:${HTTP_PORT}/ 2>&1 | grep Requests/sec
kill ${NODE_PID}
cat v8.log | ${D8_SRC}/out/x64.release/d8 ${D8_PROFILER_JS_SRC[*]} 2>&1 |\
grep _unrefActive
$(rm -f v8.log)
done

10ms Sampling

Original SmartOS v0.10:

Requests per second:    7891.09 [#/sec] (mean)
Requests per second:    8132.92 [#/sec] (mean)
Requests per second:    8346.65 [#/sec] (mean)
Requests per second:    7982.74 [#/sec] (mean)
Requests per second:    8133.56 [#/sec] (mean)
Requests per second:    8134.15 [#/sec] (mean)
Requests per second:    8327.92 [#/sec] (mean)
Requests per second:    8194.17 [#/sec] (mean)
Requests per second:    8210.37 [#/sec] (mean)
Requests per second:    8112.94 [#/sec] (mean)

Flamegraph

Non linear SmartOS v0.10:

Requests per second:    9094.22 [#/sec] (mean)
Requests per second:    9513.28 [#/sec] (mean)
Requests per second:    8969.42 [#/sec] (mean)
Requests per second:    8855.48 [#/sec] (mean)
Requests per second:    8534.39 [#/sec] (mean)
Requests per second:    8908.84 [#/sec] (mean)
Requests per second:    9308.62 [#/sec] (mean)
Requests per second:    8787.52 [#/sec] (mean)
Requests per second:    8695.15 [#/sec] (mean)
Requests per second:    8590.63 [#/sec] (mean)
Requests per second:    9621.11 [#/sec] (mean)

Flamegraph

1ms Sampling

Original SmartOS v0.10:

Requests per second:    94.88 [#/sec] (mean)
Requests per second:    276.95 [#/sec] (mean)
Requests per second:    486.15 [#/sec] (mean)
Requests per second:    120.77 [#/sec] (mean)
Requests per second:    69.78 [#/sec] (mean)
Requests per second:    2715.78 [#/sec] (mean

Flamegraph

Non linear SmartOS v0.10:

Requests per second:    409.28 [#/sec] (mean)
Requests per second:    689.46 [#/sec] (mean)
Requests per second:    575.63 [#/sec] (mean)
Requests per second:    217.70 [#/sec] (mean)
Requests per second:    526.02 [#/sec] (mean)
Requests per second:    1895.88 [#/sec] (mean)
Requests per second:    8604.69 [#/sec] (mean)

Flamegraph

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment