php time () и microtime () иногда не согласуются

При регистрации некоторых данных с помощью microtime () (с использованием PHP 5) я столкнулся с некоторыми значениями, которые казались немного не в фазе относительно временной метки моего файла журнала, поэтому я просто попытался сравнить выходные данные time () и microtime () с помощью простого скрипта (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 меньше секунд, возвращаемых функцией microtime (), как в этом примере (усеченном):

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

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

Ответы на вопрос(2)

Ваш ответ на вопрос