• php Timer 页面运行时间监测类


    php Timer 页面运行时间监测类,可按不同key监测不同的运行时间


    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 = 'Timer';
        private $_prefix = 'Timer_';
    
    
        /** 记录开始时间
        * @param String $key 标记
        */
        public function start($key=''){
            $flag = $this->getKey($key);
            $this->_start[$flag] = $this->getMicrotime();
        }
    
    
        /** 记录结束时间
        * @param String $key 标记
        */
        public function end($key=''){
            $flag = $this->getKey($key);
            $this->_end[$flag] = $this->getMicrotime();
        }
    
    
        /** 计算运行时间
        * @param  String $key 标记
        * @return float
        */
        public function getTime($key=''){
            $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=''){
            printf("%srun time %f ms
    ", $key==''? $key : $key.' ', $this->getTime($key)*1000);
        }
    
    
        /** 获取key
        * @param  String $key 标记
        * @return String 
        */
        private function getKey($key=''){
            if($key==''){
                return $this->_default_key;
            }else{
                return $this->_prefix.$key;
            }
        }
    
    
        /** 获取microtime
        */
        private function getMicrotime(){
            list($usec, $sec) = explode(' ', microtime());
            return (float)$usec + (float)$sec;
        }
    
    
    } // class end
    
    ?>
    demo:

    <?php
    
    require 'Timer.class.php';
    
    $timer = new Timer();
    $timer->start();
    
    $timer->start('program1');
    usleep(mt_rand(100000,500000));
    $timer->end('program1');
    $timer->printTime('program1');
    
    $timer->start('program2');
    usleep(mt_rand(100000,500000));
    $timer->end('program2');
    $timer->printTime('program2');
    
    $timer->end();
    $timer->printTime();
    
    ?>

    demo运行输出:

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


    源码下载地址:点击查看


  • 相关阅读:
    寒假学习进度七
    寒假学习进度六
    寒假学习进度五
    mysql 数据库第一天
    HTML 标签&总结
    事件对象
    js的事件流的概念
    jquery 的位置信息
    小米导航 案例
    jquery 的文档操作
  • 原文地址:https://www.cnblogs.com/fdipzone/p/3715055.html
Copyright © 2020-2023  润新知