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中hashtable实现示例分享
Feb 13 PHP
php使用GeoIP库实例
Jun 27 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
php不使用copy()函数复制文件的方法
Mar 13 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
PHP中你应该知道的require()文件包含的正确用法
Jun 12 PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
Nov 09 PHP
PHP读取XML格式文件的方法总结
Feb 27 PHP
php正则判断是否为合法身份证号的方法
Mar 16 PHP
thinkPHP5.0框架引入Traits功能实例分析
Mar 18 PHP
PHP实现简单日历类编写
Aug 28 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
PHP5 面向对象程序设计
2008/02/13 PHP
php常见的魔术方法详解
2014/12/25 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
符合标准的js表单提交的代码
2007/09/13 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
基于JSON数据格式详解
2017/08/31 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
python实现自动重启本程序的方法
2015/07/09 Python
TensorFlow损失函数专题详解
2018/04/26 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
python实现linux下抓包并存库功能
2018/07/18 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
造型师求职自荐信
2013/09/27 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
5s推行计划书
2014/05/06 职场文书
关于旅游的活动方案
2014/08/15 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
nginx配置限速限流基于内置模块
2022/05/02 Servers