Не совсем, но я сталкиваюсь с проблемой, когда во время выполнения этого сценария однажды в синей луне мое время приводит к отрицательному числу.Вот часть сценария, где это происходит:
public function execute()
{
$time1 = microtime();
foreach($this->tables as $table)
{
if($this->buildQuery($table))
{
if($this->submitQuery($table))
{
$time2 = microtime() - $time1;
echo "Sync Successful({$time2}s).. $table <br /> \n";
//log
}
}
else echo "No data to sync in $table";
}
}
Как вы могли бы подозревать ... не должно быть ничего плохого в том, чтобы вычесть второй раз из первого и получить грубую оценку того, сколько времени занял процесс.. Однако .. Если я запускаю его достаточно много раз, иногда результаты выводят следующее:
Sync Successful(0.062936s).. users
Sync Successful(-0.86901s).. profile
Sync Successful(-0.798774s).. groups
Sync Successful(-0.718851s).. phonebook
Sync Successful(-0.711768s).. products
No data to sync in locations
Это очень редко, но это точный вывод моего последнего результата.Поэтому мои вопросы будут такими:
Как это возможно? , что приведет к «отрицательному» результату, когда этого явно не должно произойти ..
Что я могусделать, чтобы избежать этого? Есть ли лучший способ сделать это?microtime()
ненадежен?
Может ли кто-нибудь одолжить мне DeLorean DMC-12 1981 года, способный развивать скорость 88 м / ч?