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 相关文章推荐
利用static实现表格的颜色隔行显示
Oct 09 PHP
MySQL GBK→UTF-8编码转换
May 24 PHP
坏狼的PHP学习教程之第1天
Jun 15 PHP
php函数的常用方法及注意之处小结
Jul 10 PHP
php中DOMElement操作xml文档实例演示
Mar 26 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 PHP
PHP的pcntl多进程用法实例
Mar 19 PHP
Yii2中Restful API原理实例分析
Jul 25 PHP
Yii实现复选框批量操作实例代码
Mar 15 PHP
通过PHP实现获取访问用户IP
May 09 PHP
PHP数组实际占用内存大小原理解析
Dec 11 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
dedecms中常见问题修改方法总结
2007/03/21 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
AngularJS递归指令实现Tree View效果示例
2016/11/07 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
python装饰器使用方法实例
2013/11/21 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
追悼会子女答谢词
2014/01/28 职场文书
给校长的建议书500字
2014/05/15 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
Java面试题冲刺第十五天--设计模式
2021/08/07 面试题
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android