php实现的Timer页面运行时间监测类


Posted in PHP onSeptember 24, 2014

本文实例讲述了php实现的Timer页面运行时间监测类及其用法,是一款非常实用的PHP类文件。分享给大家供大家参考。具体分析如下:

该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\r\n", $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

完整实例源码点击此处本站下载。

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php GeoIP的使用教程
Mar 09 PHP
PHP基础学习小结
Apr 17 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
Jul 04 PHP
thinkphp实现多语言功能(语言包)
Mar 04 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
Aug 21 PHP
Zend Framework实现自定义过滤器的方法
Dec 09 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
在 Laravel 项目中使用 webpack-encore的方法
Jul 21 PHP
Laravel5.5 动态切换多语言的操作方式
Oct 25 PHP
php密码生成类实例
Sep 24 #PHP
PHP中file_get_contents高?用法实例
Sep 24 #PHP
php实现的Cookies操作类实例
Sep 24 #PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
Sep 24 #PHP
php过滤html标记属性类用法实例
Sep 23 #PHP
php广告加载类用法实例
Sep 23 #PHP
php实现根据url自动生成缩略图的方法
Sep 23 #PHP
You might like
PHP中Session的概念
2006/10/09 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
PHP rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
php类声明和php类使用方法示例分享
2014/03/29 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
使用jquery实现放大镜效果
2014/09/02 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
深入理解Promise.all
2018/08/08 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
python config文件的读写操作示例
2019/09/27 Python
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
六道php面试题附答案
2014/06/05 面试题
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
介绍一下代理模式(Proxy)
2014/10/17 面试题
小学教师自我鉴定
2013/11/07 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
政府个人对照检查材料
2014/08/28 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技