免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5474 | 回复: 1
打印 上一主题 下一主题

请教PHP-5.4中的microtime()问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-09-14 08:49 |只看该作者 |倒序浏览
下面一段测试代码:
  1. <?php
  2. $arr=array();
  3. $startTime=microtime(true);
  4. for($i=0;$i<1000;$i++){
  5.         list($usec,$sec)=explode(' ',microtime());
  6.         $mtime=$sec.'.'.((float)$usec)*1000000;
  7.         array_push($arr,$mtime);
  8. }
  9. printf('%.6f<BR>',microtime(true)-$startTime);
  10. echo count($arr),':',count(array_unique($arr));
  11. ?>
复制代码
在php-5.2运行,可以得到1000个不同的数据。
在php-5.4运行,时间差经常为0。不为0时比5.2多花4倍时间,但得到的数据不超过三个。

说明:
1,系统是Win32(2000-sp2/XP-sp3)。php版本是5.2.17/5.4.44/5.4.45。
2,换了5.4以后,发现mt_rand()总是得到重复数据,然后发现了microtime()的这个问题。
3,哪位在FreeBSD版本测试过?本来打算都升级到5.4的。

论坛徽章:
0
2 [报告]
发表于 2015-09-14 08:51 |只看该作者
抱歉,把2003-sp2写成了2000-sp2。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP