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 相关文章推荐
WINDOWS服务器安装多套PHP的另类解决方案
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(3)
Oct 09 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
PHP书写格式详解(必看)
May 23 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 PHP
laravel 多图上传及图片的存储例子
Oct 14 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设计模式 Bridge (桥接模式)
2011/06/26 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
详解VUE 数组更新
2017/12/16 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
中学老师的自我评价
2013/11/07 职场文书
文秘专业大学生求职信
2013/11/10 职场文书
教师岗位职责范本
2013/12/29 职场文书
追悼会子女答谢词
2014/01/28 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
2014年工人工作总结
2014/11/25 职场文书
人事任命通知
2015/04/20 职场文书
同意转租证明
2015/06/24 职场文书