PHP中使用微秒计算脚本执行时间例子


Posted in Javascript onNovember 19, 2014

在PHP中,大多数的时间格式都是以UNIX时间戳表示的,而UNIX时间戳是以s(秒)为最小的计量时间的单位。这对某些应用程序来说不够精确,所以可以调用microtime()返回当前UNIX时间戳和微妙数。该函数的原型如下:

mixed microtime([bool get_as_float]); //返回当前UNIX时间戳和微妙数

可以为该函数提供一个可选的布尔型参数,如果在调用时不提供这个参数,本函数以“msec sec”的格式返回一个字符串。其中sec是自UNIX纪元到现在的秒数,而msec是微妙部分,字符串的两部分都是以秒为单位返回的。如果给出了get_as_float参数并且其值等价于TRUE,microtime()将返回一个浮点数。在小数点前面还是以时间戳格式表示,而小数点后面则表示微妙的值。但要注意参数get_as_float是在PHP5.0版本中新加的,所以在PHP5以前的版本中,不能直接使用该参数直接请求一个浮点数。在下面的例子中通过两次调用microtime()函数,计算运行PHP脚本所需要的时间。代码如下所示:
<?php

//生命一个计算脚本运行时间的类

class Timer{

private $startTime = 0; //保存脚本开始执行时的时间(以微秒的形式保存)

private $stopTime = 0; //保存脚本结束执行时的时间(以微秒的形式保存)

 

//在脚本开始处调用获取脚本开始时间的微秒值

function start(){

$this->startTime = microtime(true); //将获取的时间赋值给成员属性$startTime

}

//脚本结束处嗲用脚本结束的时间微秒值

function stop(){

$this->stopTime = microtime(true); //将获取的时间赋给成员属性$stopTime

}

//返回同一脚本中两次获取时间的差值

function spent(){

//计算后4舍5入保留4位返回

return round(($this->stopTime-$this->startTime),4);

}

}

 

$timer= new Timer(); 

$timer->start(); //在脚本文件开始执行时调用这个方法

usleep(1000); //脚本的主题内容,这里可以休眠一毫秒为例

$timer->stop(); //在脚本文件结束处调用这个方法

 

echo "执行该脚本用时<b>".$timer->spent()."</b>";

 

?>

在以上脚本中,声明一个用于计算脚本执行时间的类Timer。需要在脚本执行开始的位置调用该类中的start()方法,获取脚本开始执行时的时间。并在脚本执行结束的位置调用该类中的stop()方法,获取脚本运行结束时的时间。再通过访问该类中的spent()方法,就可以获取运行脚本所需的时间。

Javascript 相关文章推荐
js prototype 格式化数字 By shawl.qiu
Apr 02 Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
Oct 26 Javascript
JS设置获取cookies的方法
Jan 26 Javascript
js创建对象的方式总结
Jan 10 Javascript
原生JavaScript实现异步多文件上传
Dec 02 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
深入理解Angular2 模板语法
Aug 07 Javascript
vue页面使用阿里oss上传功能的实例(二)
Aug 09 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
Dec 07 Javascript
vue下history模式刷新后404错误解决方法
Aug 18 Javascript
vue2 设置router-view默认路径的实例
Sep 20 Javascript
angula中使用iframe点击后不执行变更检测的问题
May 10 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
Nov 19 #Javascript
实现图片预加载的三大方法及优缺点分析
Nov 19 #Javascript
jQuery Ajax()方法使用指南
Nov 19 #Javascript
javascript匿名函数实例分析
Nov 18 #Javascript
Linux下使用jq友好的打印JSON技巧分享
Nov 18 #Javascript
删除Javascript Object中间的key
Nov 18 #Javascript
如何在MVC应用程序中使用Jquery
Nov 17 #Javascript
You might like
php实现的click captcha点击验证码类实例
2014/09/23 PHP
解决php写入数据库乱码的问题
2019/09/17 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
用window.onerror捕获并上报Js错误的方法
2016/01/27 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python算法学习之基数排序实例
2013/12/18 Python
python求pi的方法
2014/10/08 Python
python分割文件的常用方法
2014/11/01 Python
Python实现测试磁盘性能的方法
2015/03/12 Python
详解python实现线程安全的单例模式
2018/03/05 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
《再别康桥》教学反思
2014/02/12 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
运动会稿件50字
2014/02/17 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
刑事辩护词范文
2015/05/21 职场文书
迎新年主持词
2015/07/06 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android