Last active
August 29, 2015 14:25
-
-
Save walkingmask/5e13a95f9dd5ea4e6b2b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
実行時間が小数点以上2桁の場合正しく計算されないバグを修正(line 42)
cut -c9-14をtr -d ' ' | sed s/real.*//gへ