Скрипт. Время генерации странички (нужно довести до ума)

12
[Удален]
#11
T.R.O.N:
Я с пхп стараюсь не общаться, но хочу спросить, как работают функции типа microtime, ведь, как правило, мало того что все это работает под апачем, так еще и под виртуальным сервером. Каким образом такая конструкция получает информацию о реальном времени. Ведь, по сути, там может быть только пользовательское время.
На сей вопрос натолкнили приведенные примеры временных параметров. Вот цыфры внуз этого форума, на мой взгляд - похожи на реальные (~0.1c) - а вот 0.00369 с бредовые (имхо конечно) с точки зрения реальности значений

хм... ща заглянем в первоисточник

[Удален]
#12
T.R.O.N:
Я с пхп стараюсь не общаться, но хочу спросить, как работают функции типа microtime, ведь, как правило, мало того что все это работает под апачем, так еще и под виртуальным сервером. Каким образом такая конструкция получает информацию о реальном времени. Ведь, по сути, там может быть только пользовательское время.
На сей вопрос натолкнили приведенные примеры временных параметров. Вот цыфры внуз этого форума, на мой взгляд - похожи на реальные (~0.1c) - а вот 0.00369 с бредовые (имхо конечно) с точки зрения реальности значений

PS У перла, аналогичная функция, показывает разные значения под реальным и виртуальным сервером

Работает через системные вызовы, получает время операционки.

0.00369 вполне себе время если используется кешер и страницу недавно кто-то открывал.

Вообще такой замер времени работает вполне правдоподобно, плюс минус 10^-4 секунд в зависимости от количества оберток для сервера.

T.R.O.N
На сайте с 18.05.2004
Offline
314
#13
neolord:
Работает через системные вызовы,

Вот поэтому и спросил. Как-то очень серьезно изучал вопрос на тему, как сделать под апачь подобие объекта Application (IIS). Так вот, изолированность памяти не позволяет такое реализовать, как раз из-за невозможности выполнять запросы к реальной системе. Только к виртуальной копии. Странно. Нужно будет опять покопать внутряки апачя. Спасибо за информацию.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
CR
На сайте с 21.11.2008
Offline
146
#14

имхо время считать надо тлько в домашних условиях с кач-ым профилированием

На рабочей версии это не более чем показуха, ибо посетителям пофиг (если это не поисковик)))

[Удален]
#15

infocean, нехорошо обманывать честных людей.

http://ru2.php.net/microtime

Замечание: Аргумент get_as_float появился в PHP 5.0.0.
Свойства счётчика:
Работает и на PHP4/5 )))
ewg777
На сайте с 04.06.2007
Offline
225
#16
freelanz:
http://phpf.ru/index.php?name=content&op=view&id=4 - тут решение проблемы

ХВАТИТ КИДАТЬ ССЫЛКИ НА СВОЙ ГСАЙТ! 😂

Yanzhula
На сайте с 13.03.2009
Offline
8
#17
mixail77:
Здравствуйте.

Пытаюсь засечь время генерации странички на сайте.
Нашел соответствующий скрипит, поставил в итоге получаю следующие (страница сгенерирована за 1239639272.129888 секунд). :)


Этот код вверху странички:


<?php
$start_time = microtime();
$start_array = explode(" ",$start_time);
$start_time = $start_array[1] + $start_array[0];
?>


Этот код внизу странички:


<?php
$end_time = microtime();
$end_array = explode(" ",$end_time);
$end_time = $end_array[1] + $end_array[0];
$time = $end_time - $start_time;

printf("Страница сгенерирована за %f секунд",$time);
?>


Что подправить, чтоб время генерации отображалось в нормальном виде (0,12345)?

Если брать за основу Ваш код, немного поменять можно.

вверх


<?php
$start_time = microtime();
$start_array = explode(" ",$start_time);
$start_time = ((float)$start_array[1] + (float)$start_array[0]);
?>

вниз


<?php
$end_time = microtime();
$end_array = explode(" ",$end_time);
$end_time = ((float)$end_array[1] + (float)$end_array[0]);
$time = $end_time - $start_time;

echo "Страница сгенерирована за".sprintf("%1.4f",$time)."секунд";
?>
разработчик YanCMS Lite (http://lite.yancms.com) - легкая система управления сайтом на файловой базе данных! (Обсуждение (/ru/forum/comment/4737444))
M
На сайте с 23.01.2009
Offline
12
#18

Порылся у себя в файлах, может пригодиться


class code_timer{
private $timer = false;
private $time = false;

public function code_timer(){

}

public function start(){
$this->time = false;
$this->timer = microtime(true);
}

public function stop(){
if ( $this->timer == false ){
return false;
}

$this->time = microtime( true ) - $this->timer;
$this->timer = false;

return $this->gettime();
}

public function gettime(){
return round( $this->time * 1000 ) / 1000;
}
}

Как реализовать думаю разберетесь.

написание скриптов... icq 377816882
Yanzhula
На сайте с 13.03.2009
Offline
8
#19

modobaks,

я думаю целый класс для этого - это уже перебор.

infocean
На сайте с 22.10.2006
Offline
34
#20
bearman:
infocean, нехорошо обманывать честных людей.

http://ru2.php.net/microtime

Да я и не пытался.

Писал исходя из поставленного опыта:

Мой метод прекрасно работает на PHP Version 4.4.9 и на PHP Version 5.2.4, а вообще скрипты разрабатываю для php 5.

Хотя, я не вдавался в подробности 4-версий.

Ааа, всё понял, был не прав!

PHP Version 4.4.9: 0.55614000 1240517847

PHP Version 5.2.4: 1240517843.52

:(.

P.S. Прошу прощения за дезинформацию.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий