Perl睡眠和时间测量

Perl睡眠和时间测量,perl,time,sleep,Perl,Time,Sleep,我有这段代码 my $time_start = time; sleep 5; my $time_diff = time - $time_start; print "time elapsed: $time_diff"; 代码大部分按预期打印5,但有时打印4。什么可能导致这种情况?睡眠是罪魁祸首,还是测量时间本身的方法有时会导致不太精确的数值?参见: 在一些较旧的系统上,它的睡眠时间可能比您请求的睡眠时间少整整一秒,这取决于它如何计算秒数。大多数现代系统总是睡得满满的。然而,他们的睡眠时间可能会更

我有这段代码

my $time_start = time;
sleep 5;
my $time_diff = time - $time_start;
print "time elapsed: $time_diff";
代码大部分按预期打印5,但有时打印4。什么可能导致这种情况?睡眠是罪魁祸首,还是测量时间本身的方法有时会导致不太精确的数值?

参见:

在一些较旧的系统上,它的睡眠时间可能比您请求的睡眠时间少整整一秒,这取决于它如何计算秒数。大多数现代系统总是睡得满满的。然而,他们的睡眠时间可能会更长,因为在繁忙的多任务系统中,您的进程可能不会立即被安排

见:

在一些较旧的系统上,它的睡眠时间可能比您请求的睡眠时间少整整一秒,这取决于它如何计算秒数。大多数现代系统总是睡得满满的。然而,他们的睡眠时间可能会更长,因为在繁忙的多任务系统中,您的进程可能不会立即被安排


如果精度很重要,也许您应该使用
Time::HiRes
模块。如果精度很重要,也许您应该使用
Time::HiRes
模块。