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 相关文章推荐
建立动态的WML站点(二)
Oct 09 PHP
获取远程文件大小的php函数
Jan 11 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
AJAX的跨域访问-两种有效的解决方法介绍
Jun 22 PHP
浅析php面向对象public private protected 访问修饰符
Jun 30 PHP
PHP上传图片进行等比缩放可增加水印功能
Jan 13 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
php异步多线程swoole用法实例
Nov 14 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
php微信开发之关键词回复功能
Jun 13 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 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 array_push 数组函数
2009/12/26 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
javascript判断非数字的简单例子
2013/07/18 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
Python的Django框架安装全攻略
2015/07/15 Python
Python反射用法实例简析
2017/12/22 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
数百万免费的图形资源:Freepik
2020/09/21 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
物理系毕业生自荐信
2013/11/01 职场文书
三年级语文教学反思
2014/02/01 职场文书
大学生演讲稿
2014/04/25 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers