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+mysql)
Nov 23 PHP
php下使用以下代码连接并测试
Apr 09 PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
php 使用file_get_contents读取大文件的方法
Nov 13 PHP
php制作的简单验证码识别代码
Jan 26 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
Jun 12 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
Apr 09 PHP
深入学习微信网址链接解封的防封原理visit_type
Aug 15 PHP
tp5框架的增删改查操作示例
Oct 31 PHP
phpstudy隐藏index.php的方法
Sep 21 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
php文件操作相关类实例
2015/06/18 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
2016/05/19 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
python爬虫的工作原理
2017/03/05 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
python仿抖音表白神器
2019/04/08 Python
超实用的 30 段 Python 案例
2019/10/10 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
对python中return与yield的区别详解
2020/03/12 Python
pyqt5中动画的使用详解
2020/04/01 Python
关于Keras Dense层整理
2020/05/21 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
教你如何一步一步用Canvas写一个贪吃蛇
2018/10/22 HTML / CSS
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
财务情况说明书范文
2014/05/06 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
故宫英文导游词
2015/01/31 职场文书