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&amp;&amp;mysql)一
Oct 09 PHP
PHP配置心得包含MYSQL5乱码解决
Nov 20 PHP
php横向重复区域显示二法
Sep 25 PHP
PHP中ob_start函数的使用说明
Nov 11 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
Dec 18 PHP
centos 7.2下搭建LNMP环境教程
Nov 20 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
php的常量和变量实例详解
Jun 27 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 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中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
php导出生成word的方法
2015/12/25 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
js实现DIV的一些简单控制
2007/06/04 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
简介JavaScript错误处理机制
2020/08/04 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
ant design 日期格式化的实现
2020/10/27 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
python如何读写json数据
2018/03/21 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
师范生实习的个人自我鉴定
2013/10/20 职场文书
施工资料员的岗位职责
2013/12/22 职场文书
工作说明书范文
2014/05/07 职场文书
解除劳动合同证明书
2014/09/26 职场文书
匿名检举信范文
2015/03/02 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
导游词之井冈山
2019/11/20 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
python基于turtle绘制几何图形
2021/06/15 Python
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python