我有这段代码
my $time_start = time;
sleep 5;
my $time_diff = time - $time_start;
print "time elapsed: $time_diff";
代码大多按预期打印5,但有时会打印4.有可能导致这种情况?是睡眠是罪魁祸首,还是时间本身的测量方法有时可能会导致精确度不高的标准?
答案 0 :(得分:6)
请参阅perldoc -f sleep:
在某些较旧的系统上,它可能会比您请求的时间少一整秒,具体取决于它如何计算秒数。大多数现代系统总是睡不着觉。但是,它们可能看起来比这更长时间,因为您的进程可能不会立即安排在繁忙的多任务系统中。