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 + | 
