一直以来用这个函数获取: <div class="codetitle"><a style="CURSOR: pointer" data="2697" class="copybut" id="copybut2697" onclick="doCopy('code2697')"> 代码如下:<div class="codebody" id="code2697"> function microtime_float(){ list($usec,$sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } 看到别人的源码中用microtime(true),查了下手册,原来从PHP 5.0.0 开始,microtime增加了这个参数。 引用 <div class="codetitle"><a style="CURSOR: pointer" data="94411" class="copybut" id="copybut94411" onclick="doCopy('code94411')"> 代码如下:<div class="codebody" id="code94411"> 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函数至少快两倍。以下是我简单测试的程序代码。 <div class="codetitle"><a style="CURSOR: pointer" data="72385" class="copybut" id="copybut72385" onclick="doCopy('code72385')"> 代码如下:<div class="codebody" id="code72385"> <?php function microtime_float3(){ return microtime(true); } function microtime_float2(){ if( PHP_VERSION > 5){ return microtime(true); }else{ list($usec,microtime()); return ((float)$usec + (float)$sec); } } function microtime_float(){ list($usec,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).' '; $t1 = microtime(true); for($i=0;$i<10000;$i++){ microtime(true); } echo "microtime_true====="; echo runtime($t1).' '; $t1 = microtime(true); for($i=0;$i<10000;$i++){ microtime_float2(); } echo "microtime_float2====="; echo runtime($t1).' '; $t1 = microtime(true); for($i=0;$i<10000;$i++){ microtime_float3(); } echo "microtime_float3====="; echo runtime($t1).' '; ?> 本机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可以做为兼容旧版本的写法。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|