Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Время генерации страницы
 
 автор: Sasha   (15.10.2005 в 22:28)   письмо автору
 
 

Видел вроде недавно пост с этим скриптом, и теперь никак не могу его найти :(
Интересно посмотреть, за сколько страничка собирается.

Если у кого-то есть, скинте плиз!

   
 
 автор: fabik   (15.10.2005 в 22:59)   письмо автору
 
   для: Sasha   (15.10.2005 в 22:28)
 

<?php
//Это вставляем в какой нить места где будет всегда использоватся на сайте.... ну в конфиг или в файл там где функции хранишь...
class microTimer {
function start() {
global $starttime;
$mtime = microtime ();
$mtime = explode (' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
}
function stop() {
global $starttime;
$mtime = microtime ();
$mtime = explode (' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = round (($endtime - $starttime), 5);
return $totaltime;
}
}
?>

<?php
//Вверху сайта пишем:
$Timer = new microTimer;
$Timer->start();
?>

<?php
//Внизу сайта что-то вроде
echo "Page generation ".$Timer->stop()." sek.";
?>

   
 
 автор: Atom   (15.10.2005 в 23:34)   письмо автору
 
   для: fabik   (15.10.2005 в 22:59)
 

А зачем для этого тормознутые классы использовать?

   
 
 автор: Евгений Петров   (16.10.2005 в 00:03)   письмо автору
 
   для: Atom   (15.10.2005 в 23:34)
 

Типа модно! :)

   
 
 автор: localGhost   (16.10.2005 в 01:06)   письмо автору
 
   для: Евгений Петров   (16.10.2005 в 00:03)
 

код в несколько строчек:
<?
// стартуем тайемер ( в самом  начале страницы):
function get_microtime () { list ($usec$sec) = explode (" "microtime ()); return $usec $sec; }
define ("MICROTIME_START"get_microtime ());

// Функцию get_microtime_end() можно расположить в любом месте, 
//например в файле с вашими функциями
function get_microtime_end() {
   
defined ("MICROTIME_START")? $return round ((get_microtime () - MICROTIME_START), 3): $return "";
   return 
$return;
}

// вывод рузультата:
echo get_microtime_end();

   
 
 автор: _isset   (16.10.2005 в 05:21)
 
   для: localGhost   (16.10.2005 в 01:06)
 

И пример для PHP5:

<?php
define 
("RUNTIME_START"microtime(true)); 

/* код */

// вывод результата:
echo RUNTIME_START-microtime(true);
?>

   
 
 автор: fabik   (16.10.2005 в 03:52)   письмо автору
 
   для: Atom   (15.10.2005 в 23:34)
 

просто пример. а чтобы ты знал. с классом результат будет куда тачнее как мне кажется чем без его по примеру localGhost не веришь убедись сам. создай вывод генерации страницы по моему примеру и localGhost и посмотри результаты. как посмотришь скажи результаты сюда ")

   
 
 автор: _isset   (16.10.2005 в 05:18)
 
   для: fabik   (16.10.2005 в 03:52)
 

Результат будет один и тот же

   
 
 автор: _isset   (16.10.2005 в 05:18)
 
   для: Atom   (15.10.2005 в 23:34)
 

Классы вовсе не тормознутые и даже быстрее обычных функций, тем более в PHP5. И попрошу не называть их больше так :-)

   
 
 автор: _isset   (16.10.2005 в 05:26)
 
   для: fabik   (15.10.2005 в 22:59)
 

Раз уж используется ООП, то надо его использовать полноцено (и зачем вводить столько переменных?):

<?php
//Это вставляем в какой нить места где будет всегда использоватся на сайте.... ну в конфиг или в файл там где функции хранишь...
class microTimer {
var 
$starttime;
function 
start() {
$mtime explode (' 'microtime());
$this->starttime $mtime[1] + $mtime[0];
}
function 
stop() {
$mtime explode (' 'microtime());
$mtime $mtime[1] + $mtime[0];
return 
round (($mtime $this->starttime), 5);
}
}
?>

<?php
//Вверху сайта пишем:
$Timer = new microTimer;
$Timer->start();
?>

<?php
//Внизу сайта что-то вроде
echo "Page generation ".$Timer->stop()." sek.";
?>

   
 
 автор: _isset   (16.10.2005 в 05:30)
 
   для: _isset   (16.10.2005 в 05:26)
 

Я бы даже переписал класс так:

<?php 
//Это вставляем в какой нить места где будет всегда использоватся на сайте.... ну в конфиг или в файл там где функции хранишь... 
class microTimer 
var 
$starttime
function 
start() {  
$this->starttime $this->current();

function 
stop() { 
return 
round (($this->current() - $this->starttime), 5); 

function 
current() {
$mtime explode (' 'microtime()); 
$mtime $mtime[1] + $mtime[0]; 
return 
$mtime;
}

?> 

   
 
 автор: Sasha   (16.10.2005 в 23:04)   письмо автору
 
   для: _isset   (16.10.2005 в 05:30)
 

Прямо в точку!
А как вы думаете, до какого времени генерация страницы нормально, а когда уже оч. много?

   
 
 автор: JIEXA   (16.10.2005 в 23:16)   письмо автору
 
   для: Sasha   (16.10.2005 в 23:04)
 

Всё завсит от того, что делает скрипт. К примеру наша кмс генерирует страницу за 0.01

   
 
 автор: cheops   (17.10.2005 в 01:13)   письмо автору
 
   для: JIEXA   (16.10.2005 в 23:16)
 

Наш сервер 10 Мб файл загружает несколько минут, разбирает его при помощи регулярных выражений за 40 секунд.

   
 
 автор: localGhost   (17.10.2005 в 04:26)   письмо автору
 
   для: cheops   (17.10.2005 в 01:13)
 

а можно поподробнеео примере для пхп5... в пятом функция microtime() работает несколько подругму? в 4 такое работатеь не будет? а то мне понравилось))))

Добавленно позже:

цитирую: Если передан аргумент get_as_float, равный TRUE, функция microtime() возвращает действительное число. В этом?

   
 
 автор: localGhost   (18.10.2005 в 07:09)   письмо автору
 
   для: localGhost   (17.10.2005 в 04:26)
 

И еще, не успел тогда добавить.... ИМХО использование классов здесь не очень кстати. Если выше сравнивалось что будет быстрее работать в виде класса или в виде функции, но ведь на подключение файла с классом и на его объявление уж тогда тоже время уйдет..... мне кажеться самый оптимальный вариант это тот который предложил _isset - всего две строчки и ничего лишнего

   
 
 автор: Sasha   (18.10.2005 в 10:00)   письмо автору
 
   для: localGhost   (18.10.2005 в 07:09)
 

Да уж. А у меня время отрицательное получилось :))
-0.00095987319946289

   
 
 автор: localGhost   (19.10.2005 в 03:02)   письмо автору
 
   для: Sasha   (18.10.2005 в 10:00)
 

да))))) ошибочка небольшая там))

<?php 
define 
("RUNTIME_START"microtime(true)); 

/* код */ 

// вывод результата: 
echo microtime(true) - RUNTIME_START
?> 

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования