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模板技术[转]
Jan 04 PHP
mysql时区问题
Mar 26 PHP
用mysql触发器自动更新memcache的实现代码
Oct 11 PHP
php教程之魔术方法的使用示例(php魔术函数)
Feb 12 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
php函数重载的替代方法--伪重载详解
May 08 PHP
一波PHP中cURL库的常见用法代码示例
May 06 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
详解PHP 二维数组排序保持键名不变
Mar 06 PHP
php实例化一个类的具体方法
Sep 19 PHP
KindEditor在php环境下上传图片功能集成的方法示例
Jul 20 PHP
PHP获取类私有属性的3种方法
Sep 10 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边学边教》(01.开篇――准备工作)
2006/12/13 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
PHPThumb图片处理实例
2014/05/03 PHP
PHP6新特性分析
2016/03/03 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
python每隔N秒运行指定函数的方法
2015/03/16 Python
Python标准库之collections包的使用教程
2017/04/27 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
python实现图片处理和特征提取详解
2017/11/13 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
解决python运行效率不高的问题
2020/07/20 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
财务会计应届生求职信
2013/11/24 职场文书
应届毕业生求职信范例分享
2013/12/17 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
餐饮加盟计划书
2014/01/10 职场文书
医生进修自我鉴定
2014/01/19 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python