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
Smarty的配置与高级缓存技术分享
Jun 05 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
ThinkPHP中自定义目录结构的设置方法
Aug 15 PHP
php提高网站效率的技巧
Sep 29 PHP
PHP图形操作之Jpgraph学习笔记
Dec 25 PHP
PHP实现获取并生成数据库字典的方法
May 04 PHP
php中Redis的应用--消息传递
Mar 28 PHP
如何利用预加载优化Laravel Model查询详解
Aug 11 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 PHP
PHP如何通过date() 函数格式化显示时间
Nov 13 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
在字符串中把网址改成超级链接
2006/10/09 PHP
隐性调用php程序的方法
2009/03/09 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
PHP 实现判断用户是否手机访问
2015/01/21 PHP
typecho插件编写教程(二):写一个新插件
2015/05/28 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
vue-router 2.0 跳转之router.push()用法说明
2020/08/12 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python与Redis的连接教程
2015/04/22 Python
Python中title()方法的使用简介
2015/05/20 Python
Python中单、双下划线的区别总结
2017/12/01 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
对python判断是否回文数的实例详解
2019/02/08 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
用python制作个音乐下载器
2021/01/30 Python
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
数据库连接池的工作原理
2012/09/26 面试题
制药工程专业应届生求职信
2013/09/24 职场文书
班组安全员工作职责
2014/02/01 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
2014年民政工作总结
2014/11/26 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
小学生暑假安全公约
2015/07/14 职场文书
mysql查找连续出现n次以上的数字
2022/05/11 MySQL