Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 3
Spacewalker Сообщение 15/08/2009 05:28 Копия темы
Проверка скорости приложения php. Понадобилось мерять скорость. Вдруг еще кому пригодится?
Гуру могут не смотреть: ничего интересного для них не будет :)

1. Инициализируем.
2. Ставим точки.
3. Выводим на экран.

1. Инициализируем.
------------------------

if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1')
{
DEFINE ("TIMEMACHINE", TRUE);
}
else
{
DEFINE ("TIMEMACHINE", FALSE);
}

2. Ставим точки.
----------------------

if (TIMEMACHINE) $timemachine[] = array ('name' => 'Старт работы скрипта', 'point' => microtime());
(любой код)
if (TIMEMACHINE) $timemachine[] = array ('name' => 'Модули подключены'', 'point' => microtime());


3. Выводим на экран.
---------------------------
if (TIMEMACHINE)
{
if (count($timemachine))
{
echo "<table border='1'>";
$p = 0;

for ($i=0; $i<count($timemachine); $i++)
{
$t0 = explode (" ", $timemachine[$p]['point']); $t0 = $t0[1] + $t0[0];
$t1 = explode (" ", $timemachine[$i]['point']); $t1 = $t1[1] + $t1[0];
$t2 = $t1 – $t0;

echo "<tr><td>".$timemachine[$i]['name']."</td><td>" ;;
$i>0? printf("%f секунд",$t2) : '---';
echo "</td></tr>\n";
$p = $i;
}

$t0 = explode (" ", $timemachine[0]['point']); $t0 = $t0[1] + $t0[0];
$t1 = explode (" ", $timemachine[$p]['point']); $t1 = $t1[1] + $t1[0];
$t2 = $t1 – $t0;

echo "<tr><td style='background-color:#cccccc; font-weight: bold;'>Всего времени: </td><td>";
printf("%f секунд",$t2);
echo "</td></tr>\n";
echo "</table>";
}
else
{
echo "Данные не были собраны.";
}
}


В итоге получаем таблицу, в которой получаем разницу времени между двумя точками. Никаких операций по вычислениям во время работы скрипта не происходит, всё считается в конце главного скрипта.
В массив (см. пункт №2) собираются значения времени. Чтобы поставить новую точку, достаточно просто скопировать строку и поменять заголовок.

"Установка":
1. Инициализируем – код в самом начале.
2. Строки для точек ставим где угодно (если вызов из функции, не забудьте сделать объявление global $timemachine внутри функции).
3. В самом конце размещаем вывод данных.

Скрин прикреплён.
BossIT Сообщение 15/08/2009 07:34 Копия темы
Профилирование кода вещь нужная при разработке :)
Но лучше count($timemachine) выносить до цикла в отдельную переменную, т.к. в вашем варианте количество будет пересчитываться каждый раз в цикле.
Spacewalker Сообщение 15/08/2009 07:38 Копия темы
Некритично для данного участка кода, но заметка, конечно, верная.
Старая привычка – все никак не избавлюсь от нее :)
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"