在perl中可以通过use函数引入你需要使用的函数名称,以下是此次会用到的函数。
#引用时间函数,包括sleep函数,gettimeofday 函数,tv_interval时间差函数
use Time::HiRes qw(sleep gettimeofday tv_interval);
1. gettimeofday 函数用法
gettimeofday 函数返回的是从世纪元时间Epoch开始计算起的秒数,可精确至微秒,Epoch是指定为1970年1月1日凌晨零点零分零秒。下面是gettimeofday函数的几种用法:
#分别返回秒和微秒两部份
my ($s, $usec) = gettimeofday();
#返回精度为微秒的总秒数
my $full_time = gettimeofday();
#返回引用地址
my $time1 = [gettimeofday];
print "$s: $s
";
print "$usec: $usec
";
print "$full_time: $full_time
";
print "$time1:$time1
";
运行结果:
$s: 1511095372 (秒)
$usec: 970000 (微秒)
$full_time: 1511095372.97
$time1:ARRAY(0x3fb440)
2. 求时间差用法
和gettimeofday相关的求时间差方法有以下两种:
#求时间间隔方法一,使用tv_interval方法,参数是引用类型
print "methon one
";
#当前时间,返回值是引用
my $time1 = [gettimeofday];
sleep(1);
my $time2 = [gettimeofday];
print "$time1:$time1
";
print "$time2:$time2
";
my $interval_time = tv_interval($time1, $time2);
print "$interval_time:",round($interval_time) ,"
";#round 四舍五入
print "methon two
";
#求时间间隔方法二,做减法
my $t1 = gettimeofday();
sleep(1);
my $t2 = gettimeofday();
print "$t1:$t1
";
print "$t2:$t2
";
my $interval =$t2 - $t1;
print "$interval_time:",round($interval),"
";#round 四舍五入
运行结果:
methon one
$time1:ARRAY(0x54b440)
$time2:ARRAY(0x5ae588)
$interval_time:1
methon two
$t1:1511095648.5815
$t2:1511095649.58101
$interval_time:1
更详细可以参考文档:http://perldoc.perl.org/Time/HiRes.html