我读了一些它可以与PHP for
循环来完成不同的优化,并想衡量对这个您的意见:PHP for循环优化
for ($x = 0; $x < 50000000; ++$x) {
}
别的我能做什么在这个基本的例子中,加速它? Zend Optimizer会提供如此基本的帮助吗?我知道这看起来很愚蠢,并不是真正的用例,但它对我特别感兴趣。
我读了一些它可以与PHP for
循环来完成不同的优化,并想衡量对这个您的意见:PHP for循环优化
for ($x = 0; $x < 50000000; ++$x) {
}
别的我能做什么在这个基本的例子中,加速它? Zend Optimizer会提供如此基本的帮助吗?我知道这看起来很愚蠢,并不是真正的用例,但它对我特别感兴趣。
关注可读的可维护代码。微型优化通常是一件坏事,因为它会导致不可读的代码。检查出什么杰夫阿特伍德(stackexchange联合创始人)有什么看法吧:http://www.codinghorror.com/blog/2009/01/the-sad-tragedy-of-micro-optimization-theater.html
你的循环目前做绝对什么,所以它优化的,因为它是永远会是。你需要担心在循环内部会发生什么,不应该优化语言结构。
可以给予“优化”for
循环声明的唯一建议是避免在比较中使用类似count()
函数的东西,因为它可能会不必要地重新评估5000万次。即:
$count = count($hugeArray);
for($i=0; $i<$count; $i++) {
//actual code
}
否则你应该FAR更关心的是你的循环内的代码。你的循环内是否有其他循环?递归调用?阻止/锁定操作?简化{
和}
之间的代码将使您得到更好的回报,而不用担心for
每天使用几十个额外的时钟周期。
谢谢你的话Sammitch。我把这个问题分解为这样一个基本的,看似微不足道的例子的原因,是因为我已经优化了循环的内部工作。我想知道像Zend Optimizer这样的东西实际上是否可以加速构建本身。 – onassar 2013-02-13 19:54:35
是不是循环内部决定速度? – SparKot 2013-02-13 19:30:29
基本上你什么都不能做。即使制作$ x ++而不是++ $ x也会减慢它的速度...... :) – Napolux 2013-02-13 19:32:16