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 相关文章推荐
用Apache反向代理设置对外的WWW和文件服务器
Oct 09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
May 26 PHP
PHP正则表达式之定界符和原子介绍
Oct 05 PHP
解决cPanel无法安装php5.2.17
Jun 22 PHP
php cookie中点号(句号)自动转为下划线问题
Oct 21 PHP
php匹配字符中链接地址的方法
Dec 22 PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
Sep 22 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
解析 thinkphp 框架中的部分方法
May 07 PHP
thinkPHP多表查询及分页功能实现方法示例
Jul 03 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 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年10月第2期TV动画制作组换血!
2020/03/06 日漫
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
tab栏切换原理
2017/03/22 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
用python实现批量重命名文件的代码
2012/05/25 Python
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
python执行使用shell命令方法分享
2017/11/08 Python
python实现zabbix发送短信脚本
2018/09/17 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
《草虫的村落》教学反思
2014/02/16 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
劳动仲裁调解书
2015/05/20 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP