我有一个基于PHP的系统自2006年以来完美运行,它有一个后端(CLI,cron)进程,处理数百万条记录,在内存中使用一个大树状结构.
在升级debian机器时,我注意到了很好的性能回归.
因此,为了研究这个问题,我编写了一个简单的脚本,并下载了十几个xampp版本,并使用不同的php版本运行相同的脚本.
$start=microtime(true);
$n=10;
$counter=1;
$testarray=Array();
for ($i[1]=0;$i[1]<$n;$i[1]++)
for ($i[2]=0;$i[2]<$n;$i[2]++)
for ($i[3]=0;$i[3]<$n;$i[3]++)
for ($i[4]=0;$i[4]<$n;$i[4]++)
for ($i[5]=0;$i[5]<$n;$i[5]++)
for ($i[6]=0;$i[6]<$n;$i[6]++)
for ($i[7]=0;$i[7]<$n;$i[7]++)
$testarray[$i[1]][$i[2]][$i[3]][$i[4]][$i[5]][$i[6]][$i[7]]=$counter++;
$end=microtime(true);
echo "PHP ".phpversion()." ".round(memory_get_peak_usage(true)/(1024*1024),2)." mbyte max ram, ".round($end-$start,2)." seconds\r\n";
Run Code Online (Sandbox Code Playgroud)
我通过win32 1.7.7-vc9对xampp win32 1.6.0a运行相同的脚本,结果如下:
- PHP 5.2.1 890.25 mbyte max ram, 12.43 seconds
- PHP 5.2.1 890.25 mbyte max ram, 12.37 seconds
- PHP 5.2.2 890.25 mbyte max ram, 12.43 seconds
- PHP 5.2.3 890.25 mbyte max ram, 12.38 seconds
- PHP 5.2.4 890.25 mbyte max ram, 12.5 …Run Code Online (Sandbox Code Playgroud)