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 相关文章推荐
桌面中心(四)数据显示
Oct 09 PHP
UCenter Home二次开发指南
May 28 PHP
php 过滤器实现代码
Aug 09 PHP
用php实现选择排序的解决方法
May 04 PHP
深入解析PHP中逗号与点号的区别
Aug 05 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
修改destoon会员公司的伪静态中的com目录的方法
Aug 21 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
thinkphp使用phpmailer发送邮件的方法
Nov 24 PHP
浅析php单例模式
Nov 25 PHP
php生成shtml类用法实例
Dec 09 PHP
php把字符串指定字符分割成数组的方法
Mar 12 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连接SQLServer2005方法及代码
2013/12/26 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
javascript 浏览器检测代码精简版
2010/03/04 Javascript
JS 树形递归实例代码
2010/05/18 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
Python3 中文文件读写方法
2018/01/23 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
对python多线程与global变量详解
2018/11/09 Python
Pycharm最新激活码2019(推荐)
2019/12/31 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
Python 如何测试文件是否存在
2020/07/31 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
中国高端家电购物商城:顺电
2018/03/04 全球购物
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
linux系统都有哪些运行级别
2016/03/26 面试题
毕业生幼师求职自荐信
2013/10/01 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
公司保洁员管理制度
2015/08/04 职场文书
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL