Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Benchmark Class


Автор: Muerto 8.12.2010, 12:32
Опубликовали мое дитя на phpclasses.org

Класс для Benchmark тестов...
пользуйтесь на здоровье

http://www.phpclasses.org/package/6652-PHP-Measure-the-time-elapsed-between-two-moments.html

Можем и покритиковать  smile 

Автор: MoLeX 8.12.2010, 13:18
да молодец, тока не все скачают - регистрация нужна.

Автор: ksnk 8.12.2010, 13:32
Интересно, зачем может понадобится метод help в этом классе?

Комментариев и примеров работы явно не хватает.

Было бы забавно устанавливать точки замера стеком и давать им символические имена. К примеру - начало на старте программы,
index.php
Код

<?php
Benchmark::start(__FILE__);
...

// при входе в процедуру, при входе в другую, 
function xxx (){
  Benchmark::start(__FUNCTION__.' '.__FILE__);
  ...
//по выходe из процедур стоит "остановка времени"
  Benchmark::stop(__FUNCTION__.' '.__FILE__); // если без имени - защелкиваем последний открытый счетчик
}
...
// вывод результатов в строковом виде ...
error_log(benchmark::report(),3,'benchmark.log');
?>


Так было бы удобнее, да и реализация была бы не сильно труднее..



Автор: Muerto 8.12.2010, 14:12
ksnk, Ну в универе меня уже приучили пользоваться стандартными документациями как к примеру в Java - javadoc 

Этот класс я для фреймворка S-MVC писал, который кстати жив но не публично  smile 

У меня такая политика была...

Ты инклюдишь файл затем делаешь 
Код

Benchmark::help();
 
 (если память не подводит  smile  )

И сразу выводиться красиво сформулированный и читабельный пример о том как именно пользоваться этим классом...

Вот такое 

user posted image

Добавлено через 11 минут и 22 секунды
Кстати я решил вспомнить как им пользоваться и заметил погрешность  smile 

Почему то я не объявил метод result как статический, хотя очевидно что нужно им пользоваться через paamayim_nekudotaim  smile 

Но вообще
Код

Benchmark::st();
//some script or code or both LOL
Benchmark::et();
echo Benchmark::result(5) . " sec. ";

Автор: Muerto 8.12.2010, 14:35
Немного подкоректировал класс, можете там скачать новую версию кому нужно, так сказать ошибки молодости исправил 

Так же что бы народу понятней было пример добавил использования!

Автор: ksnk 8.12.2010, 15:41
Цитата(Muerto @  8.12.2010,  14:12 Найти цитируемый пост)
ksnk, Ну в универе меня уже приучили пользоваться стандартными документациями как к примеру в Java - javadoc
 
Javadoc, если мне память не изменяет, специальным образом оформленные комментарии. Это уже давненько что-то вроде стандарта оформления во многих системах программирования. Не только в Java. Тут я таких комментариев не встретил   В универе учили плохо? smile

Цитата(Muerto @  8.12.2010,  14:12 Найти цитируемый пост)

У меня такая политика была...

Ты инклюдишь файл затем делаешь ...


К примеру, есть у меня большой и страшный проект. Стал он отчего-то тормозить. Стал я по сусекам скрести, да по phpclass'ам лазить и наткнулся на класс бенчмарка. И что? Мне нужно в мой большой и страшный проект первыми строчками вставлять вывод хелпа этого класса только чтобы понять как им пользоваться?  smile 
Политику надо менять!

Автор: Muerto 8.12.2010, 21:18
Нету комментариев по стандарту phpDoc потому что на момент написания класса я не знал что это такое  smile 

А точнее знал но не пользовался...


К классу в любом случае идет пример, и посмотрев его что возьмет не больше 5ти секунд + ещё 5 секунд понять , за 10 секунд ты уже начнешь пользоваться 

Хелп нафиг не нужен по большому счету когда живой пример есть...

Это простой класс с простым функционалом

У него всего два поля, и очень предсказуемое поведении  smile 

Будет время может ради формальности прибавлю комментарии по стандарту phpDoc , хотя имхо там и так все ясно.

Автор: Muerto 9.12.2010, 16:37
Обновил сегодня класс, а то там на доске уних написали что типа если не начинать таймер и пытаться посомтреть результат ошибки были...
Так я подкоректировал... убрал статический метод help

Так же добавил phpDoc Комментарии...

Ранее я с phpDoc особо дела не имел, так что гляньте если норм вышло

http://www.phpclasses.org/package/6652-PHP-Measure-the-time-elapsed-between-two-moments.html

Автор: Muerto 10.12.2010, 13:52
Класс опять был обновлен, теперь позволяет измерять сколько ваш скрипт памяти жрет!

Пример использования 
Код

<?php
require('Benchmark.class.php');
Benchmark::startTimer();
//yourcode
echo Benchmark::showTimer(5) . ' sec. ';
echo Benchmark::showMemory('kb') . ' kb' ;
?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)