diff options
Diffstat (limited to 'benchmark')
-rwxr-xr-x | benchmark/benchmark.rb | 9 | ||||
-rwxr-xr-x | benchmark/run.sh | 41 | ||||
-rwxr-xr-x | benchmark/run_msgpack.sh | 38 |
3 files changed, 88 insertions, 0 deletions
diff --git a/benchmark/benchmark.rb b/benchmark/benchmark.rb new file mode 100755 index 0000000..81e11f8 --- /dev/null +++ b/benchmark/benchmark.rb @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby + + +ARGV[0].to_i.times { + start = Time.now + `#{ARGV[1]} #{ARGV[2]}` + puts Time.now-start +} + diff --git a/benchmark/run.sh b/benchmark/run.sh new file mode 100755 index 0000000..c4bf31f --- /dev/null +++ b/benchmark/run.sh @@ -0,0 +1,41 @@ +#!/bin/zsh + + +REPEAT=10 +TMP_OVERALL=/tmp/.overall + + +echo +echo "JSON parsing benchmark" +echo "----------------------" +echo " REAPEAT=$REPEAT" +echo + +for prg in \ + test_cdec_json_parser \ + test_gason \ + test_JsonBox \ + test_jsoncpp \ + test_json-cpp \ + test_jsonxx \ + test_libjson \ + test_nosjob \ + test_picojson \ + test_rapidjson \ + test_sajson +do + echo "[$prg]" + sudo sync + sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" + echo > $TMP_OVERALL + for file in `ls -S ../data/*.json`; do + echo "$file:\t$(./benchmark.rb $REPEAT ../src/$prg $file 2>/dev/null | tee -a $TMP_OVERALL | avg | round 2) s" + done + echo "---" + echo "overall:\t$(avg < $TMP_OVERALL | round 2)" + echo " memory:\t$(./memusg.sh ../src/$prg data/1020.json 2>/dev/null)" + echo +done + +rm $TMP_OVERALL + diff --git a/benchmark/run_msgpack.sh b/benchmark/run_msgpack.sh new file mode 100755 index 0000000..7a45df0 --- /dev/null +++ b/benchmark/run_msgpack.sh @@ -0,0 +1,38 @@ +#!/bin/bash + + +REPEAT=10 +TMP_OVERALL=/tmp/.overall_msgpack + + +echo +echo "MSGPACK parsing benchmark" +echo "-------------------------" +echo " REAPEAT=$REPEAT" +echo + +for prg in \ + test_msgpack \ + test_msgpack_streaming \ + test_msgpack_ruby +do + echo "[$prg]" + sudo sync + sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" + echo > $TMP_OVERALL + if [[ $prg == test_msgpack_streaming ]]; then + A="_s" # special format for streaming + else + A="" + fi + for file in `ls -S ../data/*.pak$A`; do + echo "$file:\t$(./benchmark.rb $REPEAT ../src/$prg $file 2>/dev/null | tee -a $TMP_OVERALL | avg | round 2) s" + done + echo "---" + echo "overall:\t$(avg < $TMP_OVERALL | round 2)" + echo " memory:\t$(./memusg.sh ../src/$prg ../data/1020.pak 2>/dev/null)" + echo +done + +rm $TMP_OVERALL + |