Пятница, 2024-Апрель-19, 3:34 PM
Приветствую Вас Гость | RSS
Поиск
Главная | Каталог статей | Регистрация | Вход
eXtruder's HQ
Форма входа
Меню сайта

Категории каталога
Видео [3]
Кодинг [2]
Посвящён программированию
Hardware [1]
Разного рода "железки", Equipment.

Друзья сайта

Наш опрос
Необходимо ли обновление aquapack?
Всего ответов: 2

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Кодинг

PHP: Stopwatch
Примеры использования:

$t = new Stopwatch();
sleep(2);
echo 'time:'.$t->Stop();


$t = new MultiStopwatch();
$t->Start('one');
$t->Start('two');
sleep(1);
echo 'one: '.$t->Stop('one').' start: '.$t->GetStart('one').' end: '.$t->GetEnd('one');
sleep(2);
echo 'two: '.$t->Stop('two').' start: '.$t->GetStart('two').' end: '.$t->GetEnd('two');

Сами классы:

class Stopwatch {
    public $start;
    public $end;
   
    function Stopwatch() {
        $tmp = microtime();
        $e = explode(' ',$tmp,2);
        $this->start = $e[1].ltrim($e[0],'0');
    }
   
    public function Stop() {
        $tmp = microtime();
        $e = explode(' ',$tmp,2);
        $this->end = $e[1].ltrim($e[0],'0');
       
        return bcsub($this->end,$this->start,10);
    }
}


class MultiStopwatch {
    private $items;
   
    function MultiStopwatch() {
        $this->items = array();
    }
   
    public function Start($name) {
        $this->items[$name]=new Stopwatch();
    }
   
    public function Stop($name) {
        return $this->items[$name]->Stop();
    }
   
    public function GetStart($name) {
        if(isset($this->items[$name])) {
            return $this->items[$name]->start;
        } else {
            return -1;
        }
    }
   
    public function GetEnd($name) {
        if(isset($this->items[$name])) {
            return $this->items[$name]->end;
        } else {
            return -1;
        }
    }
}





Категория: Кодинг | Добавил: extruder (2010-Сентябрь-22)
Просмотров: 787 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright ©2024 eXtruder