- 论坛徽章:
- 0
|
下面一段测试代码:- <?php
- $arr=array();
- $startTime=microtime(true);
- for($i=0;$i<1000;$i++){
- list($usec,$sec)=explode(' ',microtime());
- $mtime=$sec.'.'.((float)$usec)*1000000;
- array_push($arr,$mtime);
- }
- printf('%.6f<BR>',microtime(true)-$startTime);
- echo count($arr),':',count(array_unique($arr));
- ?>
复制代码 在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的。 |
|