php microtime объяснение
У меня есть этот код:
$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
Скрипт выводит:
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()
и я получаю тот же тип результатов.
Не могли бы вы объяснить мне, почему?
2 ответа
Это по-прежнему требует дополнительных затрат на вызовы функций и присвоение переменных и т. Д. Это будет, по крайней мере, наименьшее количество времени, в течение которого вы спите, вероятно, еще несколько миллисекунд.
Это может быть неправильно, но я помню, как давным-давно кто-то говорил мне, что время на компьютерах очень трудно измерить.
Учитывая, что вызов функций sleep()
а также microtime()
все займет некоторое время, это всегда будет вне. При выполнении всего, что не будет частью процесса определения времени, накладные расходы.