php microtime获取浮点的时间戳


Posted in PHP onFebruary 21, 2010

一直以来用这个函数获取:

function microtime_float(){ 
list($usec, $sec) = explode(" ", microtime()); 
return ((float)$usec + (float)$sec); 
}

看到别人的源码中用microtime(true),查了下手册,原来从PHP 5.0.0 开始,microtime增加了这个参数。
引用
mixed microtime ( [bool get_as_float] ) 
microtime() 当前 Unix 时间戳以及微秒数。本函数仅在支持 gettimeofday() 系统调用的操作系统下可用。 
如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。 
如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。 
注意: get_as_float 参数是 PHP 5.0.0 新加的。

如果程序肯定在PHP5以上的环境运行,那么就直接使用microtime(true)吧,比使用microtime_float函数至少快两倍。以下是我简单测试的程序代码。
<?php 
function microtime_float3(){ 
return microtime(true); 
} 
function microtime_float2(){ 
if( PHP_VERSION > 5){ 
return microtime(true); 
}else{ 
list($usec, $sec) = explode(" ", microtime()); 
return ((float)$usec + (float)$sec); 
} 
} 
function microtime_float(){ 
list($usec, $sec) = explode(" ", microtime()); 
return ((float)$usec + (float)$sec); 
} 
function runtime($t1){ 
return number_format((microtime_float() - $t1)*1000, 4).'ms'; 
} 
$t1 = microtime_float(); 
for($i=0;$i<10000;$i++){ 
microtime_float(); 
} 
echo "microtime_float====="; 
echo runtime($t1).'<br>'; 
$t1 = microtime(true); 
for($i=0;$i<10000;$i++){ 
microtime(true); 
} 
echo "microtime_true====="; 
echo runtime($t1).'<br>'; 
$t1 = microtime(true); 
for($i=0;$i<10000;$i++){ 
microtime_float2(); 
} 
echo "microtime_float2====="; 
echo runtime($t1).'<br>'; 
$t1 = microtime(true); 
for($i=0;$i<10000;$i++){ 
microtime_float3(); 
} 
echo "microtime_float3====="; 
echo runtime($t1).'<br>'; 
?>

本机winxp运行结果:
microtime_float=====109.5631ms
microtime_true=====38.8160ms
microtime_float2=====52.7902ms
microtime_float3=====45.0699ms
Linux上运行结果:
microtime_float=====47.2510ms
microtime_true=====9.2051ms
microtime_float2=====16.3319ms
microtime_float3=====12.2800ms
在PHP5的环境下,直接使用microtime(true);显然是最快的。microtime_float2和microtime_float3都可以在不改变原有程序的情况下,直接修改函数内容来实现性能的轻微提升。microtime_float2可以做为兼容旧版本的写法。
PHP 相关文章推荐
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
PHP array_flip() 删除重复数组元素专用函数
May 16 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
Sep 23 PHP
JavaScript创建命名空间的5种写法
Jun 24 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
php实现的农历算法实例
Aug 11 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
简单实现PHP留言板功能
Dec 21 PHP
Yii 2.0如何使用页面缓存方法示例
May 23 PHP
PHP _construct()函数讲解
Feb 03 PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 PHP
PHP+ajax 无刷新删除数据
Feb 20 #PHP
php 读取文件乱码问题
Feb 20 #PHP
判断是否为指定长度内字符串的php函数
Feb 16 #PHP
支持数组的ADDSLASHES的php函数
Feb 16 #PHP
php htmlspecialchars加强版
Feb 16 #PHP
php 数组二分法查找函数代码
Feb 16 #PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 #PHP
You might like
十天学会php之第九天
2006/10/09 PHP
php zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
angularJS 入门基础
2015/02/09 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
Python模块学习 re 正则表达式
2011/05/19 Python
整理Python最基本的操作字典的方法
2015/04/24 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
如何在django中实现分页功能
2020/04/22 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
中学生在校期间的自我评价分享
2013/11/13 职场文书
社区学习十八大感想
2014/01/22 职场文书
小学清明节活动总结
2014/07/04 职场文书
人大调研汇报材料
2014/08/14 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python