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 分页原理分析,大家可以看看
Dec 21 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
php简单实现无限分类树形列表的方法
Mar 27 PHP
使用URL传输SESSION信息
Jul 14 PHP
使用PHP实现生成HTML静态页面
Nov 18 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
PHP简单日历实现方法
Jul 20 PHP
Yii2中SqlDataProvider用法示例
Sep 22 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
wordpress自定义标签云与随机获取标签的方法详解
Mar 22 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下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
对PHP语言认识上需要避免的10大误区
2014/06/12 PHP
php去除数组中重复数据
2014/11/18 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
Python实现多进程共享数据的方法分析
2017/12/04 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
用django设置session过期时间的方法解析
2019/08/05 Python
python基于opencv检测程序运行效率
2019/12/28 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
Django如何使用redis作为缓存
2020/05/21 Python
英语专业学生个人求职信范文
2014/01/06 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
企业文化演讲稿
2014/05/20 职场文书
2014年会计工作总结
2014/11/27 职场文书
劳资员岗位职责
2015/02/13 职场文书
周一给客户的问候语
2015/11/10 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python