05.04.2014 PHP сортировка массива по значению - array_multisort 02.04.2014 Ошибка php undefined symbol php_json_encode 22.07.2013 Как открыть Excel файл с помощью PHP 29.02.2012 Как проверить пустой массив или нет? 29.02.2012 JQUERY: как вести логи действий пользователя 29.02.2012 PHP: Как через POST передать множественный SELECT 09.04.2011 Работа корзины 22.03.2011 Filter_var или проверка email, url, ip на соответсвие без использования регулярных выражений
#5

Засекаем время генерации страницы

Как засечь время генерации страницы, готовый php скрипт.

Перед выполнением того кода, время выполнения которого мы хотим засечь, считываем текущее время.
После выполнения кода, опять же считываем текущее время и выводим разницу получившихся времен.

Рекомендую сразу части скрипта, отвечающие за подсчет времени в начале и в конце кода, соответственно, вынести в отдельные файлы и вставлять их по мере необходимости.

Итак, код скрипта start.php, который подсчитывает текущее время (вставлять в том месте, откуда начинаем подсчет, т.е. где-то в начале страницы).
  1. <?php
  2.  
  3. #------ файл start.php
  4.  
  5. // считываем текущее время
  6.  
  7. $start_time = microtime();
  8.  
  9. // разделяем секунды и миллисекунды (становятся значениями начальных ключей массива-списка)
  10.  
  11. $start_array = explode(" ",$start_time);
  12.  
  13. // это и есть стартовое время
  14.  
  15. $start_time = $start_array[1] + $start_array[0];
  16.  
  17. ?>

Стартовое время подсчитали. Теперь код файла end.php, который также подсчитывает текущее время, а затем выводит разность этого времени от подсчитанного в файле start.php, т.е., по сути дела, и выводит время генерации страницы.
  1. <?php
  2.  
  3. #------ файл end.php
  4.  
  5. // делаем то же, что и в start.php, только используем другие переменные
  6.  
  7. $end_time = microtime();
  8.  
  9. $end_array = explode(" ",$end_time);
  10.  
  11. $end_time = $end_array[1] + $end_array[0];
  12.  
  13. // вычитаем из конечного времени начальное
  14.  
  15. $time = $end_time - $start_time;
  16.  
  17. // выводим в выходной поток (броузер) время генерации страницы
  18.  
  19. printf("Страница сгенерирована за %f секунд",$time);
  20.  
  21. ?>

В принципе, все. Файл start.php вставляйте туда, откуда хотите начинать засекать время; end.php - где захотите "остановить ваш секундомер". Вставки файлов можете осуществлять, к примеру, инструкцией include();

Используемые функции:
string microtime() - возвращает строку в формате: "микросекунды секунды", в которой секунды - timestamp, возвращаемый функцией time(), а микросекунды - дробная часть секунд, служащаяся для более точного измерения промежутков времени. Функция работает только в системах, которые поддерживают системный вызов gettimeofday(), т.е. практически во всех.

Замечание: timestamp - формат времени, который равняется "кол-ву секунд, прошедших с полуночи 1 января 1970 года по Гринвичу до настоящего момента". Этот формат данных принят в осях UNIX, как стандартный. Универсальное и удобное представление, с которым вы еще не раз столкнетесь.

array explode(string separator, string string [, int limit]) - получает строку, заданную в её втором аргументе и пытается найти в ней подстроки, равные первому аргументу. Затем по месту вхождения этих подстрок строка "разрезается" на части, помещаемые в массив-список, который и возвращается. Если задан параметр limit, то учитываются только первые limit-1 участков "разреза". Таким образом, возвращается список из не более чем limit элементов.

Замечание: string implode(string glue, array pieces) (синоним - join()) - ф-и, полностью противоположные по значению ф-и explode(). Они берут ассоциативный массив (как правило, это список) pieces и склеивают его значению в единую строку при помощи "строки-клея" glue.

void printf (string format [, mixed args]) - ф-я, полностью аналогичная своей C версии. Она выводит в броузер строку, составленную на основе строки форматирования, содержащей некоторые специальные символы, которые будут впоследствии заменены на значения соответствующих переменных из списка аргументов. Параметры:

format - строковой формат вывода данных

args - аргументы для форматирования

30.12.2010 PHP обработчик ошибок - php.ini error_reporting 17.12.2009 GDLib и php.ini, как проверить какие форматы поддерживает сервер: 22.03.2011 Засекаем время генерации страницы 22.03.2011 Как определить количество посетителей на сайте онлайн 16.12.2009 О картинках средствами PHP
О сайте