我讀了一些它可以與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