高精度gettimeofday()函数用法

前端之家收集整理的这篇文章主要介绍了高精度gettimeofday()函数用法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在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\n";
print "\$usec: $usec\n";

print "\$full_time: $full_time\n";

print "\$time1:$time1\n";

运行结果:

$s: 1511095372 (秒)
$usec: 970000  (微秒)
$full_time: 1511095372.97
$time1:ARRAY(0x3fb440)

2. 求时间差用法

和gettimeofday相关的求时间差方法有以下两种:

#求时间间隔方法一,使用tv_interval方法,参数是引用类型

print "methon one\n";

#当前时间,返回值是引用
my $time1 = [gettimeofday];
sleep(1);
my $time2 = [gettimeofday];

print "\$time1:$time1\n";
print "\$time2:$time2\n";

my $interval_time = tv_interval($time1,$time2);
print "\$interval_time:",round($interval_time),"\n";#round 四舍五入


print "methon two\n";

#求时间间隔方法二,做减法
my $t1 = gettimeofday();
sleep(1);
my $t2 = gettimeofday();

print "\$t1:$t1\n";
print "\$t2:$t2\n";

my $interval =$t2 - $t1;
print "\$interval_time:",round($interval),"\n";#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

猜你在找的Perl相关文章