Skip to content

Instantly share code, notes, and snippets.

@walkingmask
Last active August 29, 2015 14:25
Show Gist options
  • Save walkingmask/5e13a95f9dd5ea4e6b2b to your computer and use it in GitHub Desktop.
Save walkingmask/5e13a95f9dd5ea4e6b2b to your computer and use it in GitHub Desktop.
#!/bin/sh
# 実験用スクリプト
# 使用例 $sh expr.sh pytyon expr.py 5
# 引数のチェック
if [ $# -eq 3 ] ; then
lang=$1
ope=$2
n=$3
else
echo "error: argument is not enough"
exit 1
fi
# 既存のファイルの削除
if [ -f log.txt ] ; then
rm log.txt
fi
# 言語の種類に応じてn回timeを用いてコマンドを実行しlog.txtへ記録
if [ $lang = "c" ] ; then
for i in `seq $n`
do
(/usr/bin/time $ope) >>log.txt 2>&1
done
elif [ $lang = "java" ] ; then
for i in `seq $n`
do
(/usr/bin/time $lang $ope) >>log.txt 2>&1
done
elif [ $lang = "python" ] ; then
for i in `seq $n`
do
(/usr/bin/time $lang $ope) >>log.txt 2>&1
done
else
echo "error: $lang is not available"
exit 1
fi
# timeの結果のreal時間だけ抽出
data=`grep "real" log.txt | tr -d ' ' | sed s/real.*//g`
# 平均値の計算(小数点を計算するためにbcコマンド)
ave=0
for temp in $data
do
echo "d :${temp} sec"
ave=`echo "scale=4; $ave+$temp" | bc`
done
ave=`echo "scale=4; $ave/$n" | bc`
# 平均を出力(0.0...は,最初の0は省略して出力される)
echo "ave:${ave}sec"
@walkingmask
Copy link
Author

実行時間が小数点以上2桁の場合正しく計算されないバグを修正(line 42)
cut -c9-14をtr -d ' ' | sed s/real.*//gへ

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