0
我在幾個站點上找到了部分解決方案,所以我將幾個部分放在一起,但我仍然無法弄清楚。用於查找程序的平均運行時間的腳本
下面是我在做什麼:
我從終端運行一個簡單的Java程序,並需要找到該程序的平均運行。
我在做的是多次運行該命令,查找總時間,然後將總時間除以運行程序的次數。
我也想獲取程序的輸出,而不是在標準輸出中顯示它。
這是我目前的代碼和輸出。
Shell腳本:
startTime=$(date +%s%N)
for ((i = 0; i < $runTimes; i++))
do
java Program test.txt > /dev/null
done
endTime=$(date +%s%N)
timeDiff=$(($endTime - $startTime))
timeAvg=$(($timeDiff/$numTimes))
echo "Avg Time Taken: "
echo $timeAvg
輸出:
./run: line 12: 1305249784N: value too great for base (error token is "1305249784N")
的行號12關閉,因爲這個代碼是一個較大的文件的一部分。 行號12是被評估的timeDiff
的行。
我很感激任何幫助,如果這個問題是多餘的或無關緊要的,我很抱歉。
感謝您的提示。我沒有使用%s,因爲我需要超過幾秒的精度,因爲對java程序的調用需要8到15毫秒。無論如何,只需指定毫秒而不是納秒?我喜歡使用時間函數調用測試儀的方式。我可以使用它。再次感謝。 – 2011-05-13 04:30:40
我的日期--help沒有列出任何毫秒選項。我會嘗試減少%s值的大小。你真的只需要字符串左邊的較小的6-8個值。模數還是隻是子串?或者你可以運行awk來進行數學運算,我不認爲它在數字範圍上會受到限制。祝你好運。 – shellter 2011-05-13 12:21:55
doah ..可能最簡單的方法是將你的值轉換成浮點值%s。%N,然後用awk做數學運算。此外,你不能使用可用於Java的分析?最後,如果你打算做更多這樣的事情,可以通過標籤基準測試和測試來發布問題。有很多人可以幫助解決這些問題。祝你好運! – shellter 2011-05-13 13:31:37