2013-02-13 116 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