Не совсем, но я столкнулся с проблемой, когда однажды в синей луне при запуске этого скрипта мое время дает отрицательное число. вот часть скрипта, где это происходит:
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 миль/ч?