Время выполнения php скрипта

У каждого, кто хоть немного задумывался об оптимизации быстродействия своего кода, возникала потребность в измерении времени исполнения всего скрипта либо его участков. Конечно, данный способ не идеален в плане точности измерения, но для грубых измерений вполне сойдет.

function get_time () {
        # Считываем текущее время
    $mtime = microtime();
        # Разделяем секунды и миллисекунды
    $mtime = explode(" ",$mtime);
        # Составляем одно число из секунд и миллисекунд
    $mtime = $mtime[1] + $mtime[0];
        # Возвращаем текущее время в переменную
    return $mtime;
}  

function end_time ($start_time) {
        # Записываем текущее время в переменную
    $end_time = get_time ();
        # Вычисляем разницу
    $total_time = ($end_time - $start_time);
        # Выводим не экран
    echo 'Страница сгенерирована за ',$total_time,' секунд !';
}  

    # Записываем в переменную время на начало измерения
$start_time = get_time ();  

    # некоторый участок кода
for ($i=0; $i<1000000; $i++) {
    #
}  

    # Выводим результат
end_time ($start_time);  

3 Responses to “Время выполнения php скрипта”

  1. NoNseNs says:

    В php 5 есть замечательная функция microtime(1), которая заменяет весь этот код 🙂

  2. Mihalytch says:

    Вы наверно имели ввиду то, что если использовать ф-ю microtime с необязательным параметром [bool $get_as_float], то можно заменить три строчки:

    $mtime = microtime();
    $mtime = explode(” “,$mtime);
    $mtime = $mtime[1] + $mtime[0];

    на одну

    $mtime = microtime(1);

    В таком случае как вы предлагаете заменить ей весь код? 😉

  3. Tduty says:

    Не соглашусь с NoNseNs. По моему мнению данный пример ОТЛИЧНО объясняет логику и функционал самой функции microtime. Материал рассчитан на начинающих, а им, начинающим, скомканный код ведь не самый лучший вариант.
    ДЛя продвинутых пользоватлей можно даже в одну строку написать большую часть кода, но ведь от этого пострадает удобочитаемость, так сказать.
    Так что автор, Mihalytch , привел правильный вариант.

Leave a Reply




*