您的位置:首页 > 其它

高精度gettimeofday()函数用法

2017-11-19 20:56 621 查看
在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息