Время php ()и микровремя ()иногда не совпадают

При регистрации некоторых данных с использованием микровремени()(используя PHP 5 ), я столкнулся с некоторыми значениями, которые казались немного не в фазе по отношению к метке времени моего файла журнала, поэтому я просто попытался сравнить вывод времени ()и микровремени ()с помощью простого скрипта (usleep здесь как раз для того, чтобы ограничить вывод данных):

<?php
for($i = 0; $i < 500; $i++) {
    $microtime = microtime();
    $time = time();
    list($usec, $sec) = explode(" ", $microtime);
    if ((int)$sec > $time) {
        echo $time. ' : '. $microtime. '<br>';
    }
    usleep(50000);
}
?>

Теперь, когда $microtime объявлено до $time, я ожидаю, что оно будет меньше, и ничего не должно выводиться; однако это, очевидно, не так, и время от времени $time меньше секунд, возвращаемых из микровремени (), как в этом примере (truncated )output:

1344536674 : 0.15545100 1344536675
1344536675 : 0.15553900 1344536676
1344536676 : 0.15961000 1344536677
1344536677 : 0.16758900 1344536678

Так вот, это всего лишь небольшой пробел; тем не менее, я наблюдал некоторые серии, где разница составляет (довольно )больше секунды... как же это возможно?

5
задан zoyd 9 August 2012 в 18:35
поделиться