shell脚本示例:计算毫秒级、微秒级时间差

作者:电脑系统

(2卡塔尔."%N"的皮秒部分假使长度小于9,将以0补齐。譬如999飞秒,将补齐为000000999。但在数学计算时,以0发轫的数值暗中同意会被充作八进制计算,因而供给强行保障它以10进制总计,供给选取"10#"。数学表明式相关内容参见man bash的Arithmetic Evaluation部分。

不常必要总计命令的实行时长,能够运用time命令,固然time命令能够正确到皮秒级,但time命令无法测算一群命令的推行时间。能够一向动用date命令计六柱预测令推行前后的时刻差,但直接使用date命令总括时间差只可以精确到秒级。因而,要总括飞秒级或许飞秒级的日子长度,须求对date命令的结果开展生龙活虎番计量转变。

本子如下:

[root@xuexi ~]# bash microsecond_diff.sh
9.159

(1卡塔尔.为了总结纳秒级时间差,所以选用date "%s.%N"格式。此中"%s"是测算从一九六七-01-01 00:00:00到当下光阴点通过的总秒数,所以总结五个"%s"的差值就计算出了八个时间点的秒级时间差。"%N"是种种时间点的微秒部分,由于date命令中不可能直接拿走可信赖到皮秒的岁月,因而一定要通过微秒来估测计算并转移,于是八个时间点的"%N"就足以测算出阿秒级的时刻差。

 实施该脚本:


本子表明:

看得出结果正确到了阿秒级。

本文只交付了微秒级时间差的计量方法,若要总计阿秒级时间差,对剧本稍作改过就能够。

但供给在乎的是,总计微秒时间差时要思索是否要将1秒调换来10^9飞秒,以保证微秒相减时一定得到正数值。

bash&shell种类作品:http://www.cnblogs.com/f-ck-need-u/p/7048359.html**

(3卡塔尔国.由于date命令获取到的%s和%N在同一字符串内,由此要求将其分割开来,在上述脚本中使用的是变量切分的秘诀。

#!/bin/bash
###########################################################
#  description: get msec level time delay                 #
#  author     : 骏马金龙                                   #
#  blog       : http://www.cnblogs.com/f-ck-need-u/       #
###########################################################

# filename: msec_diff.sh

function timediff() {

# time format:date  "%s.%N", such as 1502758855.907197692
    start_time=$1
    end_time=$2

    start_s=${start_time%.*}
    start_nanos=${start_time#*.}
    end_s=${end_time%.*}
    end_nanos=${end_time#*.}

    # end_nanos > start_nanos? 
    # Another way, the time part may start with 0, which means
    # it will be regarded as oct format, use "10#" to ensure
    # calculateing with decimal
    if [ "$end_nanos" -lt "$start_nanos" ];then
        end_s=$(( 10#$end_s - 1 ))
        end_nanos=$(( 10#$end_nanos   10**9 ))
    fi

# get timediff
    time=$(( 10#$end_s - 10#$start_s )).$(( (10#$end_nanos - 10#$start_nanos)/10**6 ))

    echo $time
}

#start=$(date  "%s.%N")
# Now exec some command
#end=$(date  "%s.%N")
# here give the values
start=1502758855.907197692
end=1502758865.066894173

timediff $start $end

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划