php Timer page running time monitoring class

黄舟
Release: 2023-03-05 19:32:01
Original
1278 people have browsed it

php Timer page running time monitoring class, which can monitor different running times according to different keys


##Timer.class.php

##

<?php
/** Timer class, 计算页面运行时间,可按不同key计算不同的运行时间
*   Date:   2014-02-28
*   Author: fdipzone
*   Ver:    1.0
*
*   Func:
*   public  start        记录开始时间
*   public  end          记录结束时间
*   public  getTime      计算运行时间
*   pulbic  printTime    输出运行时间
*   private getKey       获取key
*   private getMicrotime 获取microtime
*/

class Timer{ // class start

    private $_start = array();
    private $_end = array();
    private $_default_key = &#39;Timer&#39;;
    private $_prefix = &#39;Timer_&#39;;


    /** 记录开始时间
    * @param String $key 标记
    */
    public function start($key=&#39;&#39;){
        $flag = $this->getKey($key);
        $this->_start[$flag] = $this->getMicrotime();
    }


    /** 记录结束时间
    * @param String $key 标记
    */
    public function end($key=&#39;&#39;){
        $flag = $this->getKey($key);
        $this->_end[$flag] = $this->getMicrotime();
    }


    /** 计算运行时间
    * @param  String $key 标记
    * @return float
    */
    public function getTime($key=&#39;&#39;){
        $flag = $this->getKey($key);
        if(isset($this->_end[$flag]) && isset($this->_start[$flag])){
            return (float)($this->_end[$flag] - $this->_start[$flag]);
        }else{
            return 0;
        }
    }


    /** 输出页面运行时间
    * @param  String $key 标记
    * @return String
    */
    public function printTime($key=&#39;&#39;){
        printf("%srun time %f ms\r\n", $key==&#39;&#39;? $key : $key.&#39; &#39;, $this->getTime($key)*1000);
    }


    /** 获取key
    * @param  String $key 标记
    * @return String 
    */
    private function getKey($key=&#39;&#39;){
        if($key==&#39;&#39;){
            return $this->_default_key;
        }else{
            return $this->_prefix.$key;
        }
    }


    /** 获取microtime
    */
    private function getMicrotime(){
        list($usec, $sec) = explode(&#39; &#39;, microtime());
        return (float)$usec + (float)$sec;
    }


} // class end

?>
Copy after login

demo:


#
<?php

require &#39;Timer.class.php&#39;;

$timer = new Timer();
$timer->start();

$timer->start(&#39;program1&#39;);
usleep(mt_rand(100000,500000));
$timer->end(&#39;program1&#39;);
$timer->printTime(&#39;program1&#39;);

$timer->start(&#39;program2&#39;);
usleep(mt_rand(100000,500000));
$timer->end(&#39;program2&#39;);
$timer->printTime(&#39;program2&#39;);

$timer->end();
$timer->printTime();

?>
Copy after login


demo running output:

program1 run time 163.285971 ms
program2 run time 100.347042 ms
run time 264.035940 ms
Copy after login




## Above It is the content of php Timer page running time monitoring. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template