2013-02-13 143 views
0

我读了一些它可以与PHP for循环来完成不同的优化,并想衡量对这个您的意见:PHP for循环优化

for ($x = 0; $x < 50000000; ++$x) { 
} 

别的我能做什么在这个基本的例子中,加速它? Zend Optimizer会提供如此基本的帮助吗?我知道这看起来很愚蠢,并不是真正的用例,但它对我特别感兴趣。

+4

是不是循环内部决定速度? – SparKot 2013-02-13 19:30:29

+1

基本上你什么都不能做。即使制作$ x ++而不是++ $ x也会减慢它的速度...... :) – Napolux 2013-02-13 19:32:16

回答

4

你的循环目前做绝对什么,所以它优化的,因为它是永远会是。你需要担心在循环内部会发生什么,不应该优化语言结构。

可以给予“优化”for循环声明的唯一建议是避免在比较中使用类似count()函数的东西,因为它可能会不必要地重新评估5000万次。即:

$count = count($hugeArray); 
for($i=0; $i<$count; $i++) { 
    //actual code 
} 

否则你应该FAR更关心的是你的循环内的代码。你的循环内是否有其他循环?递归调用?阻止/锁定操作?简化{}之间的代码将使您得到更好的回报,而不用担心for每天使用几十个额外的时钟周期。

+1

谢谢你的话Sammitch。我把这个问题分解为这样一个基本的,看似微不足道的例子的原因,是因为我已经优化了循环的内部工作。我想知道像Zend Optimizer这样的东西实际上是否可以加速构建本身。 – onassar 2013-02-13 19:54:35