На соседнем фоурме в этой теме: Как определить время генерации страницы? написал полный вариант решения указанной проблемы, думаю вопрос довольно интересный, публикую свой вариант реализации здесь. Засучиваем рукова, открываем index.php и дописываем, первый текст - в начало файла: Код: Код (PHP): require_once( 'configuration.php' ); // считаем время за которое сгененрированна страница list($usec, $sec) = explode(" ",microtime()); $sysstart = ((float)$usec + (float)$sec); А это дописываем в конец файла index.php: Код: Код (PHP): // подсчет времени генерации страницы list($usec, $sec) = explode(" ",microtime()); $sysstop = ((float)$usec + (float)$sec); echo '<div id="time_gen">'.round($sysstop-$sysstart,4).'</div>'; doGzip(); В итоге у нас в самый низ старницы выведется слой с реальным временем генерации страницы. Заметьте, старт времени начинается после инклюдинга файлов глобалс и конфигурации, попробуйте сделать выше - результат не получите, точнее получите не такой как надо. Удачи! не забудьте создать копию файлы index.php перед редактированием.
Ответ: Расчет времени генерации страницы в какой индекс писать? - шаблона или root? похоже, в root...?
Ответ: Расчет времени генерации страницы Вопрос. А зачем это время генерации страницы вообще нужно?)) Никогда не пользовался))
Ответ: Расчет времени генерации страницы Это применяется для оценки скорости загрузки сайта при тех или иных условиях подключения к Интернету - на выделенном канале значение не составляет и одной доли секунды, на Dial-Up - приличная циферка.
Ответ: Расчет времени генерации страницы Нет. Это время выполнения скриптов - от запроса (почти) до полной генерации страницы
Ответ: Расчет времени генерации страницы Ясно, спасибо. Есть ли какие-либо крайние значения ? Скажем так, предельно допустимые? PS: если не брать в расчет время на выполнение скрипта на хостинге.
Ответ: Расчет времени генерации страницы А я всегда думал, что при помощи mosProfiler это делается проще: Код (PHP): $prof = new mosProfiler(); /*.......*/ echo $prof->mark('');
Ответ: Расчет времени генерации страницы С mosProfiler вобще ошибку выдает. А с microtime работает не правильно. Подскажите если знаете как сделать?
Ответ: Расчет времени генерации страницы Ошибка Fatal error: Cannot instantiate non-existent class: mosprofiler in dserv\www\cms\joomla15\index.php on line 2 Писал в index.php в тот что в корне (из ошибки видно), во вторую строку и в последнюю. Это ведь в Joomla1.5 в шаблон вообще не имеет смысла это писать? Нашел несколько вариантов этих записей те что не выдают такую ошибку: 1. $start_time = microtime(); // разделяем секунды и миллисекунды (становятся значениями начальных ключей массива-списка) $start_array = explode(" ",$start_time); // это и есть стартовое время $start_time = $start_array[1] + $start_array[0]; $end_time = microtime(); $end_array = explode(" ",$end_time); $end_time = $end_array[1] + $end_array[0]; // вычитаем из конечного времени начальное $time = $end_time - $start_time; // выводим в выходной поток (броузер) время генерации страницы printf("Page generated %f sec",$time); 2. $start = explode(" ", microtime()); $start = $start[1] + $start[0]; sleep(1); //SOME CODE HERE $end = explode(" ", microtime()); $end = $end[1] + $end[0]; echo ($end - $start); 3. list($usec, $sec) = explode(" ",microtime()); $sysstart = ((float)$usec + (float)$sec); list($usec, $sec) = explode(" ",microtime()); $sysstop = ((float)$usec + (float)$sec); echo '<div id="time_gen">'.round($sysstop-$sysstart,4).'</div>'; 4. $part_time = explode (" ", microtime()); $begin_time = $part_time[0] + $part_time[1]; $part_time = explode (" ", microtime()); $end_time = $part_time[0] + $part_time[1]; echo $end_time - $begin_time; 5. define("START_TIME", microtime(true)); printf("Page generated: %.5f sec", microtime(true)-START_TIME); но и работают неправильно. Первые четыре выдают Page generated 1205098714,080344 sec а пятая похожа на рабочую но иногда выдает с минусом результат. Может подскажете как сделать рабочую такую запись? P.S. А прикольно смайл получился
Ответ: Расчет времени генерации страницы Класс mosProfiler только в Joomla!1.0.x есть. В Joomla!1.5 аналогичную функцию выполняет класс JProfiler: Код (PHP): jimport( 'joomla.utilities.profiler' ); $prof =& JProfiler::getInstance(); /*.......*/ echo $prof->mark(''); PS. Обрамление div'ом можно убрать так: Код (PHP): echo strip_tags( $prof->mark('') );
Ответ: Расчет времени генерации страницы Fatal error: Call to undefined function: jimport() in dserv\www\cms\joomla15\index.php on line 2
Ответ: Расчет времени генерации страницы Слишком рано вызываете. Вызывайте после строки Код (PHP): require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); PS. А может быть, будет работать даже без вызова jimport().
Ответ: Расчет времени генерации страницы Таки да, теперь работает и результаты похожи на настоящие Вот теперь явно вижу что Joomla1.5 медленее работает чем Joomla 1.0.12 Нет без вызова jimport() не работает. Это ваша запись. Зато те четыре которые выдавали Page generated 1205098714,080344 sec если начало их вставлять после строки require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); то тоже нормально работают (во второй только нужно вместо sleep(1) написать sleep(0) или вообще без этой строки) В итоге имеем 5 вариантов записи для подсчета времени генерации страницы для Joomla 1.5
Ответ: Расчет времени генерации страницы Вариант проверенный на 1.5.4, добавляем в корневой index.php Код (PHP): require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); // Dop1 Начало подсчета времени генерации jimport( 'joomla.error.profiler' ); $prof =& JProfiler::getInstance(); // Dop1 и Код (PHP): echo JResponse::toString($mainframe->getCfg('gzip')); // Dop2 Вывод времени генерации ?><!--<?php echo strip_tags( $prof->mark('Information') );?> --><?php // Dop2 На странице ничего не светиться, а посмотреть все можно в конце исходника страницы. Например по правой кнопке мыши в IExplorer и "Просмотр HTML кода" или <Ctrl>+<F3> в Opera или ...