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 相关文章推荐
smarty的保留变量问题
Oct 23 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
Oct 09 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 PHP
ueditor 1.2.6 使用方法说明
Jul 24 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
php-redis中的sort排序函数总结
Jul 08 PHP
详解PHP数组赋值方法
Nov 07 PHP
PHP时间类完整实例(非常实用)
Dec 25 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
Jul 26 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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 检查扩展库或函数是否可用的代码
2010/04/06 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
深入理解python中的闭包和装饰器
2016/06/12 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
Python饼状图的绘制实例
2019/01/15 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
Python单元测试与测试用例简析
2019/11/09 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
Java程序员综合测试题
2014/04/25 面试题
电大毕业个人生自我鉴定
2014/03/26 职场文书
承诺书格式范文
2014/06/03 职场文书
课外科技活动总结
2014/08/27 职场文书
房产协议书范本
2014/10/18 职场文书
2014年纠风工作总结
2014/12/08 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android