我有这段代码
my $time_start = time;
sleep 5;
my $time_diff = time - $time_start;
print "time elapsed: $time_diff";
代码大部分按预期打印 5,但有时会打印 4。可能是什么原因造成的?是睡眠是罪魁祸首,还是测量时间本身的方式有时会导致不太精确的值?
请参阅perldoc -f sleep:
在某些较旧的系统上,它可能会比您请求的睡眠时间少整整一秒,具体取决于它如何计算秒数。大多数现代系统总是睡足量。但是,它们的睡眠时间可能比这更长,因为您的进程可能不会立即在繁忙的多任务系统中安排。