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 相关文章推荐
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
PHP4实际应用经验篇(3)
Oct 09 PHP
实用函数4
Nov 08 PHP
非常不错的MySQL优化的8条经验
Mar 24 PHP
PHP中的integer类型使用分析
Jul 27 PHP
关于尾递归的使用详解
May 02 PHP
解析php中session的实现原理以及大网站应用应注意的问题
Jun 17 PHP
php对数组排序的简单实例
Dec 25 PHP
php判断访问IP的方法
Jun 19 PHP
php注册审核重点解析(数据访问)
May 23 PHP
PHP面向对象之里氏替换原则简单示例
Apr 08 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 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 和 MYSQL
2006/10/09 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
php微信开发之谷歌测距
2018/06/14 PHP
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
vue cli 3.0 搭建项目的图文教程
2019/05/17 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
Python实现调用另一个路径下py文件中的函数方法总结
2018/06/07 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
普通大学毕业生自荐信范文
2014/02/23 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
领导班子四风表现材料
2014/08/23 职场文书
七年级地理教学计划
2015/01/22 职场文书
西湖英语导游词
2015/02/06 职场文书
营业员岗位职责
2015/02/11 职场文书
质量整改通知单
2015/04/21 职场文书
建党伟业观后感
2015/06/01 职场文书