以毫秒级精度检索微基准测试脚本的时间

时间:2012-05-24 15:33:34

标签: shell time

我想使用shell脚本读取文件,这里想要计算读取文件所需的时间。我创建了下面的方法来获取文件读取开始和结束时的毫秒时间,我将计算时间差,但它不是添加小时+分钟+秒并向我显示所需的数字输入。

方法

  getCurrentTimeInMili()
   {
    hourTime=$(($(date +%H)*3600))
    minuteTime=$(($(date +%m)*60))
    secondTime=$(date +%S)
    timeInMili= $(($hourTime + $minuteTime + $secondTime));
    return timeInMili
   }

错误     ./testshell.sh:line 17:return:timeInMili:需要数字参数

2 个答案:

答案 0 :(得分:3)

省略timeInMili=$

之间的空格
timeInMili= $(($hourTime + $minuteTime + $secondTime));
           ^
          This to

timeInMili=$(($hourTime + $minuteTime + $secondTime));

答案 1 :(得分:1)

多次调用date意味着它们的返回值可能彼此有点不同步 - 如果我们在第二个边界之前调用它可能会很糟糕。更好的方法是只调用一次日期并检索所需的所有信息,如下所示:

getCurrentTimeInMili() {
  date +'%H 3600 * %M 60 * + %S + 1000 * %N 1000000 / + p' | dc
}

startTime=$(getCurrentTimeInMili)
sleep 5
endTime=$(getCurrentTimeInMili)

如果你不需要这么高的准确度,你可以简单地使用time内置,如:

time sleep 5