Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Считаем время выполнения скрипт

Работа добавлена на сайт samzan.net:


Считаем время выполнения скрипта

Предводителев Сергей

Вы наверняка замечали на некоторых сайтах внизу страницы надпись, что мол скрипт выполнен или страница создана за столько-то секунд. И сейчас мы сделаем это средствами PHP.

Для начала опишу функцию, с помощью которой мы и будем измерять время, - microtime. Эта функция возвращает текущий UNIX timestamp с микросекундами. Вот описание этой функции из документации к PHP:

string microtime (void)

Возвращает строку "msec sec", где sec это текущее время, измеренное в секундах Unix Epoch (начиная с 0:00:00 January 1, 1970 GMT), а msec это микросекунды. Эта функция доступна только в ОС, поддерживающих системный вызов gettimeofday().

Обе части этой строки возвращаются в единицах секунд.

Эта функция возвращает значение типа string, а нам нужен тип float. Для преобразования напишем небольшую функцию:

function getmicrotime(){

list($usec, $sec) = explode(" ",microtime());

return ((float)$usec + (float)$sec);

} 

Эта функция выделяет из строки типа "msec sec" секунды и микросекунды, складывает их как float и полученное значение возвращает.

Теперь в самом начале скрипта запоминаем текущее время:

$TIME_START = getmicrotime();

И в самом конце скрипта смотрим время и находим разность начального и текущего времени:

$TIME_END = getmicrotime();

$TIME_SCRIPT = $TIME_END - $TIME_START;

Всё… в переменной $TIME_SCRIPT содержится время выполнения нашего скрипта. Но при выводе это переменной мы получим примерно следующее:

0.31106710434

Чтобы красиво вывести это число воспользуемся функцией number_format, второй параметр которой обозначает количество цифр после запятой:

number_format($TIME_SCRIPT,3,'.','');

И теперь мы получаем красивый вывод:

0.254

Вот что в итоге получилось у меня:

$TIME_START = getmicrotime();

function getmicrotime(){

list($usec, $sec) = explode(" ",microtime());

return ((float)$usec + (float)$sec);

}

<?

 $TIME_END = getmicrotime();

 $TIME_SCRIPT = $TIME_END - $TIME_START;

?>

<div align="center"><b>.::</b>

Скрипт выполнен за <?=number_format($TIME_SCRIPT,3,'.','');?> сек.

<b>::.</b>

</div>

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://coderpro.fatal.ru/




1. Статья Встречная проверка название новое, содержание старое
2. Расчеты по специальным видам платежей в бюджетных организациях
3. шляхецкие вольности времен РП.html
4. во Цена 3160100003HD Опора шаровая Meyle BMW 3
5. Федерация скалолазания IV этап Кубка Ставропольского края по спортивному скалолазанию 21 декабря 2013
6. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата сільськогосподарських наук1
7. I Анализ сущности инфляции История инфляционных процессов Сущность инфляции в разных экономических школ
8. Амплитудно-частотные характеристики и настройка связанных контуров
9. Таблиця Студенти з БД Деканат а форма для перегляду і введення записів в таблицю Студенти має такий вигл
10. Обозначим через граф процессов
11. 1Контуры смежных деталей чертят одной линией если зазоры между ними менее 1 мм на чертеже
12. РЖД стартует масштабный социальноимиджевый проект Марафон добрых дел который будет включать в себя сер
13. Zeitung Es hndelt sich um einen rtikel us der XYZeitung Gliederung ngeben Der rtikel behndelt die folgenden 3 Punkte Frgen
14. это урегулированные гражданским процессуальным правом отношения складывающиеся между судом и другими суб
15. і Крытэрыі ацэнкі мастацкага твора
16. Тема- Электрический расчет высоковольтных линий
17. ния фондов денежных средств для обеспечения общественных потребно стей
18. Бекітемін ~лтты~ ~~
19. эмоционального напряжения
20. правовой науке была проделана большая работа по исследованию права жалобы гражданина