php microtime объяснение - PullRequest
       26

php microtime объяснение

11 голосов
/ 05 декабря 2011

У меня есть этот код:

$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 ]

18 голосов
/ 05 декабря 2011

Для вызовов функций, назначения переменных и т. Д. Все еще требуются дополнительные издержки. Это будет, по крайней мере, длительность вашего сна, вероятно, на несколько миллисекунд больше.

5 голосов
/ 05 декабря 2011

Это может быть неправильно, но я давно помню, как кто-то говорил мне, что время на компьютерах очень трудно измерить.

Учитывая, что вызов функций sleep() и microtime() занимает все времяэто всегда будет вне.При выполнении чего-либо, что не будет частью процесса определения времени, накладные расходы.

...