|
2010-09-05
|
Автор: Дмитрий Львов
Обновлено: 2010-07-22 07:18:28
Просмотров: 46
ID: 253
Тип материала: Урок
Раздел: PHP

Сначала напишем функцию, которая выдает время, затраченное на выполнение своего кода:
function do_something(){
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$tstart = $mtime;
//here is the code to execute
//.........
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$tend = $mtime;
$tpassed = ($tend - $tstart);
return($tpassed);
} Для конкретно нашей задачи, нужно модифицировать эту функцию так, чтобы выполнялись SQL запросы: //запрос передается как аргументТеперь у нас есть функция, которая считает запросы и выдает время экзекуции :) Вот как она должна быть использована:
function do_query($query){
//подсоединяем две глобальные переменные
global $result;
global $qnum;
//счетчик запросов
$qnum++;
//засекаем время старта
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$tstart = $mtime;
//выполняем запрос
$result = MYSQL_QUERY($query);
//засекаем время окончания
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$tend = $mtime;
$tpassed = ($tend - $tstart);
//возвращаем время, затраченное на запрос return($tpassed);
}
//Не забудьте где-нибудь в начале скрипта объявить эти две переменные:В окончательном скрипте нужно еще засечь полное время выполнения, таким же способом, что использовался в функции. Внизу код такого скрипта, который заработает, если вы вставите реальные SQL запросы и подсоединитесь к базе данных.
$result=0;
$qnum=0;
//...
//Вызов функции:
$sql_time+=do_query("SELECT * FROM SOME_TABLE");
//Теперь можно разбирать полученные данные:
while($row = mysql_fetch_array($result)){
print($row['Text']);
}
<? //Засекаем время стартаВот и все ! :)
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$tstart = $mtime;
//Коннектимся к базе:
include 'connect.php';
//Объявляем переменные
$result=0;
$qnum=0;
//Объявляем нашу функцию
function do_query($query){
global $result;
global $qnum;
$qnum++;
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$tstart = $mtime;
$result = MYSQL_QUERY($query);
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0]; $tend = $mtime;
$tpassed = ($tend - $tstart);
return($tpassed);
}
//Далее тело скрипта
$sql_time+=do_query("SELECT * FROM SOME_TABLE");
//Обрабатываем данные
while($row = mysql_fetch_array($result)){
print($row['Text']);
}
//Пример еще одного запроса
$sql_time+=do_query("SELECT * FROM ANOTHER");
//Обрабатываем данные
$row = mysql_fetch_array($result);
print($row['Another_Text']); //Засекаем время окончания
$mtime = microtime();
$mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0];
$tend = $mtime;
$total = ($tend - $tstart);
//Выдаем время:
printf("SQL запросов: $qnum, время mysql: %f,
всего затрачено: %f секунд !", $sql_time, $total);
//Вычисляем процент времени:
$sqlpercent = ($sql_time*100)/$total;
print('Процент времени на MySQL: '. round($sqlpercent, 2) . '%'); ?>
Обновление и перенаправление страницы (Урок)
Подключение базы данных MySQL (Урок)
Отправка e-mail средствами PHP (Урок)
Как работает постраничная навигация (Урок)
Операторы выбора if...else (Урок)
Работа с файлами. Чтение и запись (Урок)
Использование AJAX в шаблонах Joomla (Урок)
Скажи спаму STOP! (Урок)
Как использовать технологию Microsoft средствами PHP (Урок)
Пишем чат на PHP (Урок)Частичное либо полное копирование материалов, представленных на этом ресурсе, запрещено!
Cлужба поддержки 
|
Полезная информация
разработчику
|
|
