Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с microtime() при подсчете время исполнения SQL

244
06 апреля 2007 года
UAS
2.0K / / 19.07.2006
УУУУУУУххххх как я уже запарился...

Задача: вводится массив из SQL запросов. Циклом проходим по массиву, выполняем запросы. Засекаем время выполнения запроса через microtime();

Вот этот кусок кода выполняет это. (плюс здесь всякие функции echo() - ну это я дебаг делаю,)
Код:
foreach($SQLs as $query) {
    $mc1=microtime();
    list($usec,$sec) = explode(" ",$mc1);
    $time["start"] = (float)$usec + (float)$sec;

    $result=$this->_query($query);

    $mc2=microtime();
    list($usec,$sec) = explode(" ",$mc2);
    $time["end"] = (float)$usec + (float)$sec;

    echo("Microtime1:'".$mc1."'  |  Microtime2:'".$mc2."'<br>");
    echo("Start:'".$time["start"]."'  |  End:'".$time["end"]."'<br><br>");

    // бла-бла. остальной код
}
По идее все должно работать, НО! Посмотрите на прикрепленные рисунки (вывод, дебаг). Почему-то после первой итерации $time["start"] и $time["end"] равны 1. Отчего до сих пор понять не могу...
244
06 апреля 2007 года
UAS
2.0K / / 19.07.2006
Мда. Все в нашем мире решается извратно)))
Решил пробелму так:
 
Код:
//заменил цикл в первом посте на это:
foreach($SQLs as $query) {
    list($usec1,$sec1)=explode(" ",microtime());
    $result=$this->_query($query);
    list($usec2,$sec2)=explode(" ",microtime());
    $time=round($sec2-$sec1+$usec2-$usec1,$this->microtimeRound);
}

Почему пример в первом посте отказывался пахать я так и не понял(((
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог