我很渴望在foreach
和for
之間哪個循環技術被認爲性能最好?並且我們還可以通過查找循環的最佳實踐來優化腳本。哪個循環在性能上更好 - foreach還是?
回答
不要擔心性能 - 預優化是萬惡之源,最多可節省幾納秒。
使用過有規律的0
,1
,2
陣列循環時for
循環,並且使用的是不從0
爲什麼他們應該在數字索引數組上使用'for'? – Jon 2013-05-08 08:02:38
@Jon我不知道PHP是否以相同的方式保存所有數組(使用遞增鍵/靜態鍵等),但我可以想象,在輸出數組之前不必查找數組中的鍵是更快的。一個'foreach'將(實質上)*有*查找鍵和*然後*遍歷數組,而for循環只需要引用數組長度,但不必查找鍵。我*可能會對此錯誤,但是如果我是這樣的話,我會喜歡一些見解。 – h2ooooooo 2013-05-08 08:06:06
所有數組都以相同的方式保存:散列表(提供快速查找任意鍵)和鏈表(提供排序和確定性迭代)的組合。 'foreach'使用鏈表進行迭代,所以不涉及查找。實際上它是查找的(因爲它們不是「真正的」數組,所以在訪問時索引被散列並查找散列表)。 – Jon 2013-05-08 08:08:18
- 1. 哪個循環具有更好的性能?增加還是減少?
- 2. 哪個循環更高效/最好 - 的foreach或while循環
- 3. 哪個更好 - 主循環還是單獨的線程?
- 4. 在性能方面,哪個更好:foo.setVisibility(View.GONE)還是parent.removeView(foo)?
- 5. 哪個地圖縮小性能更好?Hbase還是Cassandra?
- 6. 哪一個性能更好?交叉連接還是新表?
- 7. Array_combine在foreach循環中還是什麼?
- 8. 在這種情況下哪個更好:性能還是可靠性?
- 9. XPath性能 - 哪個更好?
- 10. 性能for/while循環VS名單上foreach循環<T>
- 11. 哪一個性能更好:foreach()聲明或Where()查詢?
- 12. 哪個更好? Java開發還是Webworks?
- 13. 哪個更好? XML,INI還是其他?
- 14. 哪個更好?碳還是可可? (Mac)
- 15. PHP - 退出還是哪個更好?
- 16. 克隆還是應用:哪個更好?
- 17. MySQL - 哪個更好:SELECT還是SELECT COUNT?
- 18. foreach循環歸還問題
- 19. Neo4j,哪個更好:多重關係還是一個屬性?
- 20. 在PHP中哪個性能更好?
- 21. 哪個更快? (在Unity中foreach循環和更新)
- 22. 在循環內部還是在循環外部聲明變量會更好嗎?
- 23. SQL索引性能,哪個更好?
- 24. 哪個更快,MogoDB聚合還是自我實現「For」循環?
- 25. 查詢效率 - 哪個性能更好?
- 26. 哪個更好?循環內核或循環內核的CUDA GPU
- 27. 使用循環或臨時表,哪一個可以提供更好的性能?
- 28. PHP + Wordpress功能組織:哪個更好,function()還是Include()?
- 29. 不能foreach循環
- 30. 在PHP foreach中,哪個更快,否定條件還是繼續?
措施遞增,並看到自己的密鑰,當
foreach
:但請記住,'foreach'是專門對於數組和可迭代的對象,而'for'則更具通用性。你可能也想看'while while'循環 – 2013-05-08 08:00:42http://stackoverflow.com/questions/3430194/performance-of-for-vs-foreach-in-php?rq=1 – 2013-05-08 08:00:42
也可以使用echo而不是print。回聲不會返回一個值,所以將爲您節省寶貴的CPU週期;-) – 2013-05-08 08:04:52