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 相关文章推荐
php chr() ord()中文截取乱码问题解决方法
Sep 08 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
Jan 27 PHP
PHP include_path设置技巧分享
Jul 03 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
Zend Framework页面缓存实例
Jun 25 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
ThinkPHP实现登录退出功能
Jun 29 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
php中对象引用和复制实例分析
Aug 14 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
用文本作数据处理
2006/10/09 PHP
PHP与SQL注入攻击[一]
2007/04/17 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
基于jquery库的tab新形式使用
2012/11/16 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
vue之延时刷新实例
2019/11/14 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
Python字符串处理函数简明总结
2015/04/13 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
python找出完数的方法
2018/11/12 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
技校生自我鉴定范文
2013/09/26 职场文书
建筑专业毕业生推荐信
2013/11/21 职场文书
运动会广播稿200字
2014/01/15 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
公司担保书格式范文
2014/05/12 职场文书
道德演讲稿
2014/05/21 职场文书
争先创优个人总结
2015/03/04 职场文书
法律意见书范本
2015/06/04 职场文书
关于python中模块和重载的问题
2021/11/02 Python
深入理解Pytorch微调torchvision模型
2021/11/11 Python