ФорумПрограммированиеPHP для идиотов → Время выполнения функции

Время выполнения функции

  • Serg007

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 21 ноября 2007 г. 15:47

    Нужно узнать сабж. Каким образом это сделать?
  • ghost

    Сообщения: 883 Репутация: N Группа: Джедаи
  • unikom

    Сообщения: 43 Репутация: N Группа: Кто попало

    Spritz 21 ноября 2007 г. 15:50, спустя 53 секунды

    майкротаймом
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 21 ноября 2007 г. 16:13, спустя 17 минут 57 секунд

    На тебе пару готовых функций

    function st()
    {
    global $tstart;
    //Считываем текущее время
    $mtime = microtime();
    //Разделяем секунды и миллисекунды
    $mtime = explode(" ",$mtime);
    //Составляем одно число из секунд и миллисекунд
    $mtime = $mtime[1] + $mtime[0];
    //Записываем стартовое время в переменную
    $tstart = $mtime;
    echo "<p><div style=\"color : blue\">Время обнулено</div>";
    }

    function ct()
    {
    global $tstart;
    //Делаем все то же самое, чтобы получить текущее время
    $mtime = microtime();
    $mtime = explode(" ",$mtime);
    $mtime = $mtime[1] + $mtime[0];
    //Записываем время окончания в другую переменную
    $tend = $mtime;
    //Вычисляем разницу
    $totaltime = ($tend - $tstart);
    //Выводим не экран
    printf ("<div style=\"color : blue\">Сгенерировано за %f секунд !</div>", $totaltime);
    }


    Работают в паре до и после блока кода, который надо замерить т.е.


    st(); // Start time
    my_not_optimized_function();
    ct(); // Current time
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 21 ноября 2007 г. 17:54, спустя 1 час 41 минуту 16 секунд

    Только они будут иметь какой-то смысл, если my_not_optimized_function() работает на порядки дольше самих st() и ct() :)
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 21 ноября 2007 г. 18:08, спустя 13 минут 34 секунды

    Разумеется … она же - not_optimized :)

    А также, надо понимать, что время работы функции вообще величина не постоянная … и при каждом запуске может быть разный результат.
    Так что эти функции не какое-то универсальное мерило, а вспомогательный инструмент для оптимизации и оценки ее эффективности.
  • Serg007

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 21 ноября 2007 г. 21:49, спустя 3 часа 41 минуту 29 секунд

    Благодарю за помощь
  • Patrick

    Сообщения: 506 Репутация: N Группа: Кто попало

    Spritz 22 ноября 2007 г. 1:36, спустя 3 часа 47 минут 6 секунд

    XDebug - полюбому рулит!!! т.к. microtime - это грязное время….

Пожалуйста, авторизуйтесь, чтобы написать комментарий!