Ответ 1
Он по-прежнему требует дополнительных накладных расходов для вызовов функций и назначения переменных и т.д. Это будет ПО МЕНЬШЕ длительности времени, в течение которого вы спите, вероятно, в несколько миллисекунд больше.
У меня есть этот код:
$time_sample[] = microtime(true); //start
sleep(1);
$time_sample[] = microtime(true); //time 1
sleep(2);
$time_sample[] = microtime(true); //time 2
sleep(3);
$time_sample[] = microtime(true); //time 3
sleep(4);
$time_sample[] = microtime(true); //time 4
Выходы script:
Time 1: 1.001217 seconds.
Time 2: 2.002094 seconds.
Time 3: 3.003023 seconds.
Time 4: 4.004211 seconds.
Исходя из этого, почему sleep(1)
не 1.000000 секунд, sleep(2)
2.00000 секунд и т.д.?
Я сделал тот же тест с usleep()
, и получился тот же тип результатов.
Не могли бы вы объяснить мне, почему?
Он по-прежнему требует дополнительных накладных расходов для вызовов функций и назначения переменных и т.д. Это будет ПО МЕНЬШЕ длительности времени, в течение которого вы спите, вероятно, в несколько миллисекунд больше.
Это может быть неправильно, но я давно помню, что кто-то сказал мне, что время на компьютерах очень сложно измерить.
Принимая во внимание, что вызов функций sleep()
и microtime()
занимает какое-то время, он всегда будет отсутствовать. Есть накладные расходы при выполнении чего-либо, что не будет частью процесса синхронизации.