В этой статье я расскажу о том, как засечь время выполнения вашего кода на PHP.
Наверняка вы уже где-нибудь видели маленькую надпись внизу страницы, что-нибудь типа:
Page generated in 0.325261 seconds
Вот тоже самое можно сделать с помощью всего трех функций:
1) Функция string microtime(void)
Возвращает строку типа "msec sec",
где msec - количество миллисекунд
и sec - текущее время в секундах с начала эпохи UNIX (0:00:00 January 1, 1970 GMT)
Эта функция работает только в операционных системах, поддерживающих системный вызов gettimeofday().
2) Функция
array explode(string separator, string string [, int limit])
Делит строку string в соответствии с разделителем separator и записывает все части (или не все, если указано количество частей limit) в массив, который функция выдает в качестве результата.
3) Функция
void printf (string format [, mixed args])
Эта функция полностью аналогична своей C версии. Она выводит аргументы (args), по заданному формату format
Параметры:
format - строковый формат вывода данных
args - аргументы, для форматирования
Итак, теперь рассмотрим логику.
Что нам нужно сделать ?
Нам нужно перед выполнением кода, время которого мы хотим засечь, считать текущее время. После выполнения кода мы опять должны будем считать текущее время и вывести разницу.
Пишем следующие строки в самом начале вашего PHP скрипта:
//Считываем текущее время
$mtime = microtime();
//Разделяем секунды и миллисекунды
$mtime = explode(" ",$mtime);
//Составляем одно число из секунд и миллисекунд
$mtime = $mtime[1] + $mtime[0];
//Записываем стартовое время в переменную
$tstart = $mtime;
Теперь в самом конце, после кода, время выполнения которого нам надо засечь, пишем:
//Делаем все то же самое, чтобы получить текущее время
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
//Записываем время окончания в другую переменную
$tend = $mtime;
//Вычисляем разницу
$totaltime = ($tend - $tstart);
//Выводим не экран
printf ("Страница сгенерирована за %f секунд !", $totaltime);
Обратите внимание, что простой вывод с помощью print или echo в данном случае не подходит, так как мы имеем дело с переменной не целочисленного типа, поэтому надо обязательно указать для PHP формат вывода такой переменной.
Другие работы по теме:
Технологія WebSnap
Створення оригінального прикладення, яке складається з декількох html-сторінок, за допомогою засобів C++ Builder із застосуванням технології WebSnap. Використання панелі навігації, адаптерів і парольного доступу, забезпечення зв'язку з БД типу InterBase.
Как выбрать CMS с открытым кодом
Проекты с открытым кодом уже привычны среди операционных систем, серверов приложений и баз данных. Теперь его преимущества могут быть продемонстрированы в системах управления контентом (CMS).
Программируем на РНР
Циклы в программировании — это повторяющиеся несколько раз операции. Начало (точка отсчета) указывается в начале цикла, а длительность его выполнения ограничивается каким-либо условием. Примером цикла может служить копирование нескольких файлов.
Клавиатура как основной элемент компьютера
Клавиатура как современный основной элемент компьютера, ее назначение. Функции некоторых клавиш в большинстве программ. Шрифты в контексте ввода текста с клавиатуры и отображения символов. Основные виды, параметры клавиатур и принцип их действия.
Сессии в PHP
Сессия - это время, в течении которого посетитель находится на сайте. Часто возникает необходимость в том, что бы в течении сеанса пользователя сопровождали некоторые переменные.
РНР - что в этом слове?
РНР (читается как пи-эйч-пи) появился на свет осенью 1994 года по воле Расмуса Лердорфа (Rasmus Lerdorf). Немного ранее имели место первые версии этого скрипт-языка, которые сам автор использовал исключительно в своих личных целях.
Языки серверных скриптов
В последнее время Web-узлы перестают быть просто набором страниц и картинок. Все чаще создаются узлы, которые взаимодействуют с посетителем, выполняют какие-то действия, собирают данные, ведут подсчеты, самонастраиваются под предпочтения посетителя.
Считаем время выполнения скрипта
Вы наверняка замечали на некоторых сайтах внизу страницы надпись, что мол скрипт выполнен или страница создана за столько-то секунд. И сейчас мы сделаем это средствами PHP.
XMLHttpRequest (AJAX)
Объект XMLHttpRequest (AJAX): отправка и обработка ответов HTTP-запросов с помощью JavaScript. Методы и свойства объекта, общие для Internet Explorer 5, Mozilla, Netscape 7. Алгоритм выполнения, JavaScript-код. PHP-скрипт получения данных из базы.
Приемы работы с файлами и папками
Операции с контекстным меню "Проводника". Доступ к дискам ПК. Удаление меню "Файл". Отображение функции "Панель управления". Очистка файла подкачки. Системные драйверы и пользовательские коды. Задание имени локального компьютера. Жалобы на зависание ПК.
Генерация дидактических материалов по математике
Демонстрация программы генераций заданий по математике, удовлетворяющих условиям различности и равноценности. Подготовка контрольных и самостоятельных работ в 5–7 классах. Поддержка написания тестов, с перемешиванием вариантов ответов в каждом варианте.
Технология AJAX
Ajax - технология разработки Web-приложений c использованием кода на машине клиента для изменения данных на Web-сервере. Обновление Web-страницы без перезагрузки, прерывающей обмен данными. Методы и свойства объекта XMLHTTPRequest. Поле Select с поиском.
Статистика на сайті
Порядок розробки спеціальної програми-лічильника для підрахування кількості людей, що відвідали сайт, значення даного скрипта для діяльності власника сайту. Опис вигляду лічильника в браузері, його структура та основні елементи, принцип і зміст роботи.
Приемы программирования на JavaScript
Изучение создания скриптов на JavaScript. Разработка программы выдачи простого предупреждения по событию Click при выборе гипертекстовой ссылки. Применение контейнера SCRIPT для размещение JavaScript-кода. Получение типа программы просмотра HTML-страниц.
ASP.NET пример построения круговой диаграммы
Христофоров Юрий Ниже будет показано, как можно в ASP.NET приложении, используя графические методы GDI+, нарисовать круговую диаграмму. Это может быть полезно, например, для наглядного представления данных.
Перенос приложений MIDAS с одной СУБД на другую
Александр Капустин Введение В данной статье рассматриваются проблемы, связанные с миграцией приложения MIDAS с одной СУБД на другую. Рассмотрим это на примере переноса приложения, описанного в статье Романа Игнатьева "MIDAS: практика применения". Приложение написано под Interbase 5.6 и использует компоненты IBX на сервере приложений для доступа к СУБД.
Объект Recordset и текстовые файлы ASP
Христофоров Юрий В этой статье речь пойдет о построении объекта Recordset на основе информации из текстового файла. Сталкиваясь с задачей представления данных из текстовых файлов (с поддержкой сортировок по нескольким полям, разбиением набора данных по страницам) возникает вопрос: как решить данную задачу наиболее просто? Первый вариант решения - использование массивов.
Создание таблиц с помощью SQL-запросов
Создание таблиц с помощью SQL-запросов Содержание Обзор Создание таблиц с помощью SQL Заключение Обзор На данном уроке мы познакомимся еще с одной возможностью создания таблиц - через посылку SQL-запросов. Как Вы, наверное, могли заметить на предыдущем уроке, Database Desktop не обладает всеми возможностями по управлению SQL-серверными базами данных.
Хеш-функции в криптосистемах
Саратовский Государственный Университет им. Н. Г. Чернышевского Курсовая работа «Хеш-функции в криптосистемах» Выполнил: студент 112гр. КниИТ Иванченко Е. С.
Практический Перл для начинающего
Данная работа написана для людей, которым в силу непреодолимых обстоятельств приспичило срочно изучить Перл. Для меня таким обстоятельством стало то, что мой компьютер стал WEB-сервером, а я, соответственно, WEB-мастером. Учиться принято на чужих ошибках и опыте, поэтому предлагаю Вашему вниманию свой опыт изучения Перла.
Вводный курс в PHP
Синтаксис языка РНР, его переменные и чувствительность их имен к регистру. Гибкость в отношении типов переменных, преобразование типов. Набор основных типов данных при работе с переменными. Методы передача переменных скрипту. Операторы цикла и выбора.
Проектирование баз данных 2
Содержание: Введение 2 Проектирование базы данных 4 Бизнес-модель процесса проектирования базы данных: сбор и анализ входных данных 9 Бизнес-модель процесса проектирования реляционной базы данных: создание логической модели базы данных 11
Сессии в PHP
С самого начала PHP все приняли на ура, но как только на этом языке стали создавать достаточно крупные проекты, разработчики столкнулись с новой проблемой - в PHP отсутствовало понятие глобальных переменных.