почему время начала больше, чем время окончания - PullRequest
2 голосов
/ 20 февраля 2012

У меня есть следующий код для расчета времени выполнения.

$TimeTaken['start'] = microtime();
require_once 'resources/include.php'; 
session_start();

ob_start();
error_reporting(E_ALL);*/
error_reporting(0);

/* Other Mojo
  ...............
  ...............
  ...............
*/

ob_flush();
flush();
ob_end_flush();

$TimeTaken['end']   = microtime();
$TimeTaken['diff'] = $TimeTaken['end'] - $TimeTaken['start'];
print_r($TimeTaken);
?>

Это вывод, который я получил (иногда)

Array ( [start] => 0.72150600 1329728036 
        [end] => 0.62957200 1329728038 
        [diff] => -0.091934 )

Правильный ли приведенный выше код и если да, то почему время начала> время окончания

Ответы [ 2 ]

5 голосов
/ 20 февраля 2012

Поскольку действительный способ получить время в микросекундах - microtime(true);, а не microtime();

Без второго параметра, равного true, у вас есть строка 0.72150600 1329728036, которая представляет вторые доли и секунды, начиная с эпохи Unix, разделенных пробелом. И оператор вычитания просто приводит его к 0.72150600, что просто неправильно.

0 голосов
/ 20 февраля 2012

Я предлагаю вам использовать time() вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...