EOMY.NET
на главную
EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   <b>Лотерея</b>Лотерея   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

RSS Feed

Таймер

 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
Таймер
Автор Сообщение
Wink
$a ||= 5;
$a ||= 5;


Зарегистрирован: 08.08.2006
Сообщения: 899
Откуда: Россия, Омск
113191 Монеты

СообщениеДобавлено: Чт, 16 Ноя, 2006 04:03    Заголовок сообщения: Таймер Ответить с цитатой

Вот кусочек кода, который используется у меня на сайте. Собственно, таймер. Позволяет засекать временные промежутки и отслеживать продолжительность выполнения PHP скриптов. У кого есть ещё реализации таймеров - закидывайте сюда.

Сама функция:
Код:
function timer($shift = false)
{
  static $first = 0;
  static $last;

  $now = preg_replace('#^0(.*) (.*)$#', '$2$1', microtime());
  if (!$first) $first = $now;
  $res = $shift ? $now - $last : $now - $first;
  $last = $now;
  return $res;
}

Использование:
Код:
timer();
- первоначальная установка таймера (вставляется в самое начало кода)
Код:
timer(1);
- возвращает промежуток времени прошедший с предыдущего обращения к таймеру.
Код:
timer();
- возвращает промежуток времени прошедший с момента первого запуска таймера.

Пример:
Вставляем в начало кода:
Код:
<?php
function timer($shift = false)
{
  static $first = 0;
  static $last;

  $now = preg_replace('#^0(.*) (.*)$#', '$2$1', microtime());
  if (!$first) $first = $now;
  $res = $shift ? $now - $last : $now - $first;
  $last = $now;
  return $res;
}
 
timer();
?>

А это в конец:
Код:
<?php echo '<!-- script execution time: '.timer().' -->'; ?>

В итоге, в конец кода страницы будет добавлен комментарий, в котором содержится время, затраченное на её создание.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Wink
$a ||= 5;
$a ||= 5;


Зарегистрирован: 08.08.2006
Сообщения: 899
Откуда: Россия, Омск
113191 Монеты

СообщениеДобавлено: Чт, 16 Ноя, 2006 04:06    Заголовок сообщения: Ответить с цитатой

А теперь вопрос Very Happy
Видел на некоторых сайтах пишется не только общее время генерации страницы, но и сколько из него затрачено на запросы к базе данных. Как это делают?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
KLeN
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 20.09.2006
Сообщения: 52

2419 Монеты

СообщениеДобавлено: Чт, 16 Ноя, 2006 06:30    Заголовок сообщения: Ответить с цитатой

Просто считают обращения, обращайся к бд и поднимай какой нибудь счетчик или напиши класс прослойку для работы с бд, который сам все это будет делать, но имх зачем это все
У меня всю эту информацию (время выполнения, кол-во затраченной памяти, кол-во и время запросов к БД) система выдает только если к ней обратиться со специальным ключом, а иначе толку не вижу.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора MSN Messenger
madhamster
$a ||= 5;
$a ||= 5;


Зарегистрирован: 09.10.2006
Сообщения: 729

32491 Монеты

СообщениеДобавлено: Ср, 24 Янв, 2007 23:33    Заголовок сообщения: Ответить с цитатой

Wink писал(а):
А теперь вопрос Very Happy
Видел на некоторых сайтах пишется не только общее время генерации страницы, но и сколько из него затрачено на запросы к базе данных. Как это делают?


Вот коечо намутил и вроде работает:

Код:

<?php

class database{


    var $query_count = 0;

    function dbquery($sql){
        $query = mysql_query($sql);
        if($query){
            $this->query_count++;
            return $query;
        }else{
            exit("SQL ERROR!");
        }

    }

}

include("connect.php");

$mysql = new database;

$mysql->dbquery("select * from web");
$mysql->dbquery("select * from web where id='2'");
$mysql->dbquery("select * from web where id='5'");
$mysql->dbquery("select * from web where id='3'");
$mysql->dbquery("select * from web where id='6'");

echo $mysql->query_count.' запросов к базе данных.';

?>


Выведет "5 запросов".
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Wink
$a ||= 5;
$a ||= 5;


Зарегистрирован: 08.08.2006
Сообщения: 899
Откуда: Россия, Омск
113191 Монеты

СообщениеДобавлено: Чт, 25 Янв, 2007 04:05    Заголовок сообщения: Ответить с цитатой

madhamster, угу, примерно так я и предполагал
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
madhamster
$a ||= 5;
$a ||= 5;


Зарегистрирован: 09.10.2006
Сообщения: 729

32491 Монеты

СообщениеДобавлено: Чт, 25 Янв, 2007 07:20    Заголовок сообщения: Ответить с цитатой

А можно ли это осуществить не используя классов?
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
larstas
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 09.12.2006
Сообщения: 88
Откуда: Украина, Луганск
4422 Монеты

СообщениеДобавлено: Пт, 26 Янв, 2007 22:45    Заголовок сообщения: Ответить с цитатой

madhamster
НУ, это вряд ли. Обычно такие штучки прописываются в классе использования баз данных. Так, в ЦМС и форумах они используются практически всегда. Еще не видел ЦМС без БДшного класса.

А на самом деле стоит просто логически подумать: каким образом ты будешь подсчитывать запросы к БД? И уж тем более время их выполнения? Вот так вот.

Есть правда один выход:
создать переменную вроде $db_counter, обнулить ее в начале выполнения скрипта, а потом после каждой строчки БД запроса делать $counter++;
Но это просто не резонно Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
Страница 1 из 1

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group






Рейтинг SIMPLETOP.NET