为什么php数组在较新的php版本中会变慢,以及如何解决这个问题?
发布时间:2020-12-13 13:04:54 所属栏目:PHP教程 来源:网络整理
导读:我有一个基于 PHP的系统自2006年以来完美运行,它有一个后端(CLI,cron)进程,处理数百万条记录,在内存中使用一个大树状结构. 升级debian机器时,我注意到了很好的性能回归. 因此,为了研究这个问题,我编写了一个简单的脚本,并下载了十几个xampp版本,并使用不同的
我有一个基于
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)." secondsrn"; 我通过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 seconds - PHP 5.2.5 890.25 mbyte max ram,12.28 seconds - PHP 5.2.5 890.25 mbyte max ram,12.31 seconds - PHP 5.2.6 890.25 mbyte max ram,12.52 seconds - PHP 5.2.6 890.25 mbyte max ram,12.54 seconds - PHP 5.2.8 890.25 mbyte max ram,12.72 seconds - PHP 5.2.9 890.25 mbyte max ram,12.53 seconds - PHP 5.3.0 975.5 mbyte max ram,18.28 seconds - PHP 5.3.1 975.5 mbyte max ram,18.06 seconds - PHP 5.3.5 975.5 mbyte max ram,18.49 seconds - PHP 5.3.8 975.5 mbyte max ram,17.97 seconds - PHP 5.3.8 975.5 mbyte max ram,18.11 seconds 笔记: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |