Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2010-10-14 03:20:24 +0400
committerRyan Dahl <ry@tinyclouds.org>2010-10-14 03:20:24 +0400
commitff456b38862de3fd0118c6ac6b3f46edb1fbb87f (patch)
tree2c7a7e8302e5f9340d66373da9a7bab3a72dd26e /benchmark
parentcdde22a27d797b853efac161eaec630d3405e924 (diff)
Add 'make bench' script
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/http_simple.js2
-rwxr-xr-xbenchmark/http_simple_bench.sh77
2 files changed, 78 insertions, 1 deletions
diff --git a/benchmark/http_simple.js b/benchmark/http_simple.js
index 93903c42a92..8d66190e0fb 100644
--- a/benchmark/http_simple.js
+++ b/benchmark/http_simple.js
@@ -74,7 +74,7 @@ var server = http.createServer(function (req, res) {
body = fixed;
} else if (command == "info") {
- body = 'rev: ' + rev + '\n' + 'uname: ' + uname + '\n';
+ body = 'rev=' + rev + '\nuname="' + uname + '"\n';
} else {
status = 404;
diff --git a/benchmark/http_simple_bench.sh b/benchmark/http_simple_bench.sh
new file mode 100755
index 00000000000..79cbaa79cfb
--- /dev/null
+++ b/benchmark/http_simple_bench.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+SERVER=127.0.0.1
+PORT=8000
+
+# You may want to configure your TCP settings to make many ports available
+# to node and ab. On macintosh use:
+# sudo sysctl -w net.inet.ip.portrange.first=32768
+# sudo sysctl -w net.inet.tcp.msl=1000
+
+if [ ! -d benchmark/ ]; then
+ echo "Run this script from the node root directory"
+ exit 1
+fi
+
+if [ $SERVER == "127.0.0.1" ]; then
+ ./node benchmark/http_simple.js &
+ node_pid=$!
+ sleep 1
+fi
+
+info=`curl -s http://$SERVER:$PORT/info`
+eval $info
+
+date=`date "+%Y%m%d%H%M%S"`
+
+ab_hello_world() {
+ local type="$1"
+ local ressize="$2"
+ if [ $type == "string" ]; then
+ local uri="bytes/$ressize"
+ else
+ local uri="buffer/$ressize"
+ fi
+
+
+ name="ab-hello-world-$type-$ressize"
+
+ dir=".benchmark_reports/$name/$rev/"
+ if [ ! -d $dir ]; then
+ mkdir -p $dir
+ fi
+
+ summary_fn="$dir/$date.summary"
+ data_fn="$dir/$date.data"
+
+ echo "Bench $name starts in 3 seconds..."
+ # let shit calm down
+ sleep 3
+
+ # hammer that as hard as it can for 10 seconds.
+ ab -g $data_fn -c 100 -t 10 http://$SERVER:$PORT/$uri > $summary_fn
+
+ # add our data about the server
+ echo >> $summary_fn
+ echo >> $summary_fn
+ echo "webserver-rev: $rev" >> $summary_fn
+ echo "webserver-uname: $uname" >> $summary_fn
+
+ grep Req $summary_fn
+
+ echo "Summary: $summary_fn"
+ echo
+}
+
+# 1k
+ab_hello_world 'string' '1024'
+ab_hello_world 'buffer' '1024'
+
+# 100k
+ab_hello_world 'string' '102400'
+ab_hello_world 'buffer' '102400'
+
+
+if [ ! -z $node_pid ]; then
+ kill -9 $node_pid
+fi