Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Timer-Seiten-Laufzeitüberwachungsklasse

PHP-Timer-Seiten-Laufzeitüberwachungsklasse

黄舟
黄舟Original
2017-02-17 10:14:261286Durchsuche

php-Timer-Seiten-Laufzeitüberwachungsklasse, die unterschiedliche Laufzeiten entsprechend verschiedenen Schlüsseln überwachen kann


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

?>

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();

?>

Demo-Laufausgabe:


program1 run time 163.285971 ms
program2 run time 100.347042 ms
run time 264.035940 ms



Das Obige ist der Inhalt der PHP-Timer-Seitenlaufzeitüberwachung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn