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 curl获取301或302转向的网址问题的解决方法
Jun 02 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
Jan 27 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 PHP
php读取der格式证书乱码解决方法
Jun 22 PHP
使用php+swoole对client数据实时更新(一)
Jan 07 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
CI框架常用方法小结
May 17 PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
php经典趣味算法实例代码
Jan 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
晶体管来复再生式二管收音机
2021/03/02 无线电
php 读取shell管道传输过来的内容
2010/03/01 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
JavaScript运算符小结
2015/06/03 Javascript
javascript的BOM汇总
2015/07/16 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
python处理文本文件实现生成指定格式文件的方法
2014/07/31 Python
Python open()文件处理使用介绍
2014/11/30 Python
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
Python类定义和类继承详解
2015/05/08 Python
python实现爬山算法的思路详解
2019/04/09 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
Python实现简单猜数字游戏
2021/02/03 Python
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
文秘专业个人求职信
2013/12/22 职场文书
雷人标语集锦
2014/06/19 职场文书
商业门面租房协议书
2014/11/25 职场文书
2015年世界水日活动总结
2015/02/09 职场文书
运动会观后感
2015/06/09 职场文书
如何使用SQL Server语句创建表
2022/04/12 SQL Server