我正在为我的研究编写一个应用程序,该应用程序处理非常大的数组和对其值的大量迭代。为了减少计算时间,我正在对代码进行一些改进。现在,经过几次改进,计算时间还是有点高。该array_key()
函数是消耗几乎一半计算时间的函数。有没有更好的替代品呢?
我正在创建一个示例,它是我需要改进的简单版本(没有迭代循环):
$bigArray=array_fill(0,1000000,0);
for($i=0;$i<10;$i++){
$rnd=mt_rand(0,1000000);
$bigArray[$rnd]=1;
}
$start=microtime(true);
$list=array_keys($bigArray,1);
$end=microtime(true);
echo $end-$start;
结果是0.021490097045898
几秒钟。有人知道更快的方法吗?即使是非常小的改进也会有所帮助,因为这种计算会进行数十万轮,有时时间会达到 30 秒,其中一半用于上述array_key()
功能。
顺便说一句,我在双核(英特尔)E8500 @3.16GHz、3.17GHz 和 8Gb RAM 上运行脚本,操作系统是 Windows 7 64 位(以防万一)。
提前致谢。