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 相关文章推荐
织梦模板标记简介
Mar 11 PHP
PHP 创建文件(文件夹)以及目录操作代码
Mar 04 PHP
php getimagesize 上传图片的长度和宽度检测代码
May 15 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
php将12小时制转换成24小时制的方法
Mar 31 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
PHP调用接口API封装的例子
Oct 11 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 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通用分页类page.php[仿google分页]
2008/08/31 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
PHP加密解密类实例代码
2016/07/20 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
JavaScript 事件对象的实现
2009/07/13 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
Python continue语句用法实例
2014/03/11 Python
python实现的简单抽奖系统实例
2015/05/22 Python
python Django模板的使用方法
2016/01/14 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
简单了解Python write writelines区别
2020/02/27 Python
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
创新型城市实施方案
2014/03/06 职场文书
学生逃课检讨书
2015/02/17 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python