Проблема с подсчетом времени sql запроса

M
На сайте с 22.02.2007
Offline
161
1042

Почему-то у меня частенько получается время исполнение sql запроса - отрицательное..


for ($i = 0; $i < 100; $i++) {
$start_time = microtime(true);
mysql_query("SELECT NOW()");
$end_time = microtime(true);
$result = $end_time - $start_time;
if ($result < 0) {
echo $start_time.'<br />'.$end_time.'<br />'.$result;
exit();
}
}

В чем баг?

Торрент Трекер Катушка - скачать фильмы (http://katushka.net) | SmartProgress - достижение целей (https://smartprogress.do/) Партнерская программа SmartProgress (https://smartprogress.do/affiliate)
M
На сайте с 22.02.2007
Offline
161
#1

Есть предположения?

Qinghua
На сайте с 01.09.2009
Offline
103
#2
gormarket
На сайте с 29.12.2010
Offline
47
#3

maxttor, посмотрите, что возвращает функция microtime, например здесь, и Вам все станет понятно.

Кстати там кажется есть вариант правильного измерения времени.

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
M
На сайте с 22.02.2007
Offline
161
#4
gormarket:
maxttor, посмотрите, что возвращает функция microtime, например здесь, и Вам все станет понятно.

Кстати там кажется есть вариант правильного измерения времени.

А теперь посмотрите сюда: http://ru2.php.net/manual/en/function.microtime.php

При флаге $get_as_float == true, функция возвращает float число.

ParserYa
На сайте с 04.10.2010
Offline
29
#5
Замечание: Аргумент get_as_float появился в PHP 5.0.0.

Копирую ваш скрипт к себе, предварительно подключив БД - никаких отрицательных значений нет.

M
На сайте с 22.02.2007
Offline
161
#6

Я знаю, что это баг, что так не должно быть. Поэтому и хочу узнать, может у кого-то что-то подобное было?

S
На сайте с 23.05.2004
Offline
315
#7

print microtime(true);

и посмотреть что возвращает, а не утверждать сразу о баге.

Это просто подпись.
gormarket
На сайте с 29.12.2010
Offline
47
#8
ParserYa:
Копирую ваш скрипт к себе, предварительно подключив БД - никаких отрицательных значений нет.

А у меня есть отрицательные значения.

Что не удивительно, потому что на localhost стоит PHP Version 4.4.0 и естественно параметр get_as_float не работает и функция microtime выдает строку в любом случае.

ParserYa
На сайте с 04.10.2010
Offline
29
#9
gormarket:
потому что на localhost стоит PHP Version 4.4.0

Ну дак я же не случайно ТСу написал:

ParserYa:
Замечание: Аргумент get_as_float появился в PHP 5.0.0.

;)

M
На сайте с 22.02.2007
Offline
161
#10

Да 5 ка у меня php и микротайм верный формат выдает.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий