Chinaunix

标题: 请教PHP-5.4中的microtime()问题 [打印本页]

作者: hard2enroll    时间: 2015-09-14 08:49
标题: 请教PHP-5.4中的microtime()问题
下面一段测试代码:
  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的。
作者: hard2enroll    时间: 2015-09-14 08:51
抱歉,把2003-sp2写成了2000-sp2。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2