Maison >développement back-end >tutoriel php >Introduction à la classe de surveillance du temps d'exécution de la page php Timer

Introduction à la classe de surveillance du temps d'exécution de la page php Timer

jacklove
jackloveoriginal
2018-06-09 14:11:231577parcourir

Classe de surveillance du temps d'exécution de la page PHP Timer, qui peut surveiller différents temps d'exécution en fonction de différentes touches

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
?>

démo :

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

sortie de la démo en cours d'exécution :

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

Cet article explique le contenu connexe sur la surveillance du temps d'exécution de la page php Timer. Pour plus de connaissances connexes, veuillez prêter attention au site Web chinois de php.

Recommandations associées :

Introduction à la méthode du constructeur php prenant en charge différents nombres de paramètres

Comment utiliser PDO pour interroger les méthodes mysql pour éviter l'injection SQL

Explication de la classe de file d'attente bidirectionnelle PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn