php赋值给数组 速度慢,为什么php数组在较新的php版本中会变慢,以及如何解决这个问题?...

我有一个基于

PHP的系统自2006年以来完美运行,它有一个后端(CLI,cron)进程,处理数百万条记录,在内存中使用一个大树状结构.

升级debian机器时,我注意到了很好的性能回归.

因此,为了研究这个问题,我编写了一个简单的脚本,并下载了十几个xampp版本,并使用不同的php版本运行相同的脚本.

$start=microtime(true);

$n=10;

$counter=1;

$testarray=Array();

for ($i[1]=0;$i[1]

for ($i[2]=0;$i[2]

for ($i[3]=0;$i[3]

for ($i[4]=0;$i[4]

for ($i[5]=0;$i[5]

for ($i[6]=0;$i[6]

for ($i[7]=0;$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";

我通过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

笔记:

– 我不在服务器上使用xampp或windows,但这是一次测试不同版本的最简单方法.

– 我尝试谷歌这个问题几次,但没有得到任何相关的结果

– 服务器上的速度损失大致相同(运行时间长50%)

– 我不认为任何框架或编译器都可以接受这种类型的减速,即使有新特性,旧功能也应该像以前一样好用.我不能告诉我的老板,同一台计算机使用相同的软件不能再做同样的工作了,因为我们在它上面对debian进行了升级…这看起来像是一些Windows升级. 🙂

有任何想法吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值