Помощник
|
Таймер на PHP |
ZhukV
|
Сообщение
#1
|
||
|
|
||
|
|||
Letmetouchyou |
11.12.2010, 22:26;
Ответить: Letmetouchyou
Сообщение
#2
|
|
бред.
особенно [PHP] $mtime = explode(' ', $mtime); $mtime = $mtime[1] + $mtime[0];[/PHP] |
|
|
ZhukV
|
Сообщение
#3
|
|
в чем бред?
|
|
|
alexdrob |
11.12.2010, 22:40;
Ответить: alexdrob
Сообщение
#4
|
|
В классе юзать глобальные переменные это нормально?)
полный бред. Посмотрите пример тут http://php.net/manual/en/function.microtime.php |
|
|
ZhukV
|
Сообщение
#5
|
|
[PHP]class Timer{
private $timer = array(); function start($timer = ''){ if(!$timer){ return !trigger_error('Не указан идентификатор таймера'); } $this -> timer[$timer]['start'] = microtime(true); } function stop($timer = ''){ if(!$timer){ return !trigger_error('Не указан идентификатор таймера'); } $this -> timer[$timer]['stop'] = microtime(true); return $this -> timer[$timer]['stop'] - $this -> timer[$timer]['start']; } function get($timer = '', $rand = 5){ if(!$timer){ return !trigger_error('Не указан идентификатор таймера'); } if($this -> timer[$timer]['stop']) return round($this -> timer['timer'], $rand); $mtime = microtime(true); return round($mtime - $this -> timer[$timer]['start'], $rand); } }[/PHP] Пример использования: [PHP]$timer = new Timer(); $timer -> start('test') . '<br />'; for($i = 0; $i < 500000; $i++){ if(is_int($i / 100000)){ echo $timer -> get('test') . '<br />'; } } echo $timer -> stop('test');[/PHP] |
|
|
Mulder_hb |
11.12.2010, 23:18;
Ответить: Mulder_hb
Сообщение
#6
|
|
Любой таймер должен иметь одну специфическую особенность: его код не должен влиять на показания самого таймера. Сколько лишнего времени прибавит к показанию данный класс? Я думаю, результат будет сильно искаженным.
|
|
|
ZhukV
|
Сообщение
#7
|
|
Сколько лишнего времени прибавит к показанию данный класс? Как же тогда создать? На функциях и глоб переменных? Смотрел только что на DLE, Drupal, Joomla, так там таймеры на классах, вот пример из DLE: [PHP]class microTimer { function start() { global $starttime; $mtime = microtime(); $mtime = explode( ' ', $mtime ); $mtime = $mtime[1] + $mtime[0]; $starttime = $mtime; } function stop() { global $starttime; $mtime = microtime(); $mtime = explode( ' ', $mtime ); $mtime = $mtime[1] + $mtime[0]; $endtime = $mtime; $totaltime = round( ($endtime - $starttime), 5 ); return $totaltime; } }[/PHP] |
|
|
MetSerp |
11.12.2010, 23:29;
Ответить: MetSerp
Сообщение
#8
|
|
Как же тогда создать? а с какой целью делегировать функции таймера на сервер? |
|
|
Letmetouchyou |
11.12.2010, 23:41;
Ответить: Letmetouchyou
Сообщение
#9
|
|
[PHP]<?php
class timer{ static $timers = Array(), $stop = Array(); static function start($name){ if($name) self::$timers[$name] = microtime(true); } static function getTime($name, $cut = 5){ if($name) return round(microtime(true) - self::$timers[$name], $cut).' sec.'; } static function stop($name){ self::$timers[$name] = microtime(true) - self::$timers[$name]; self::$stop[$name] = true; } static function getAll(){ foreach(self::$timers as $name=>$timer){ if(self::$stop[$name]) $all[$name] = $timer; else $all[$name] = microtime(true) - $timer; } return $all; } } timer::start('first'); usleep(2000000); $end = timer::getTime('first'); var_dump($end); # 2 usleep(4000000); $end = timer::getTime('first'); var_dump($end); # 2 + 4 timer::stop('first'); timer::start('second'); usleep(1000000); $end = timer::getTime('second'); var_dump($end); # 1 var_dump(timer::getAll()); ?>[/PHP] |
|
|
Letmetouchyou |
11.12.2010, 23:44;
Ответить: Letmetouchyou
Сообщение
#10
|
|
В классе юзать глобальные переменные это нормально?) Посмотрите пример тут http://php.net/manual/en/function.microtime.php ну так а зачем использвать лишный explode? |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое | 5 | CULA | 3430 | 19.12.2023, 18:55 автор: CULA |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1246 | 24.11.2023, 14:46 автор: alexey |
|
Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP) | 56 | qpPeW | 44951 | 19.7.2023, 10:03 автор: qpPeW |
|
Есть спецы по php/laravel? | 3 | Mixatraider | 1894 | 26.5.2023, 20:48 автор: Mixatraider |
|
Опытный PHP\Python разработчик в поиске интересных задач | 6 | daikzlex | 3410 | 25.5.2023, 13:55 автор: daikzlex |
Текстовая версия | Сейчас: 26.4.2024, 8:39 |