我記得多年前,聽說循環遞減而不是遞增更有效,特別是在編程微處理器時。 這是真的嗎?如果是這樣,原因是什麼?更好地減少循環?
更好地減少循環?
回答
從蝙蝠身上發生的一件事是遞減循環的結束條件可能會更快。如果循環到certian值,則每次迭代都需要與該值進行比較。但是,如果循環爲零,那麼大多數處理器上的遞減會自動設置零標誌,如果減量值爲零,則不需要額外的比較操作。
我認識的小土豆,但是在一個緊密的內部循環中,它可能很重要。
這確實是答案 –
如果你可以張貼一些時間分析顯示這種效果,這個問題可能值得重新打開。 – Gabe
@加貝 - 一個奇怪的請求。一般來說,我實際上贊同你對這種微型優化的懷疑。我絕對不會混淆我的HLL代碼來做到這一點,除非我有數字顯示它幫助了很多。但是,(在像M68K或Ix86這樣的處理器上)這需要額外的指令這一事實是毋庸置疑的。我不認爲我真的有足夠的空閒時間來確定地向您證明,執行任何指令都比執行指令更快。 –
在c#中,效率沒有任何區別。減少循環的唯一原因是如果循環訪問集合並隨時刪除項目。
不知道遞減,但我知道使用++我而不是i ++更具有高性能。
網上有很多文章爲什麼會這樣,但歸結到這一點:使用++我讓它自動地被聲明爲第一次,並且使用i ++不會那樣做。 (在C#至少)
同樣,不知道遞減時更好的性能,只是想我會扔東西在那裏看到你是如何詢問性能:)
你只使用遞減,因爲在我所知道的某些情況下它更容易。
肯定這不是真的 –
- 1. 減少For循環?
- 2. 減少Foreach循環?
- 3. 減少while循環
- 4. 地圖,減少,過濾適用於循環和while循環
- 5. 減少循環的值
- 6. 在Python中減少循環
- 7. 在Scala中減少循環?
- 8. 哪個循環具有更好的性能?增加還是減少?
- 9. 有沒有更好的循環可以編寫來減少數據庫查詢?
- 10. 地圖減少地圖減少
- 11. while循環以減少int在android
- 12. JavaScript減少循環不工作
- 13. 減少循環執行時間
- 14. 如何減少Hartley變換的循環?
- 15. 減少嵌套for循環的時間
- 16. 如何減少這個比較循環
- 17. C - 氣泡排序減少循環量
- 18. 在Ruby on Rails中減少循環
- 19. OpenMP與並行減少的for循環
- 20. 減少執行時間在循環
- 21. 嵌套for循環中的Cuda減少
- 22. 減少循環的時間複雜度
- 23. Python中循環,從而減少重複
- 24. 減少matlab循環的運行時間
- 25. 循環在uitableviewcell中減少的數字
- 26. openmp並行循環減少double *
- 27. 使用PHP循環來減少代碼
- 28. 使用條件減少'while循環'
- 29. 減少循環中遞增的變量
- 30. SQLite減少for循環的時間
也許它取決於將'ECX'遞減爲零的彙編程序指令'LOOP'。但在高級語言中,這不應該產生太大的影響。 – Nobody
C#標籤令人困惑:您的問題取決於CPU架構,但C#被編譯爲IL代碼,可根據指令集將其翻譯爲不同的機器代碼指令 –
如果您的實際代碼比其他代碼快,張貼它並問爲什麼。否則,這不是一個非常有用的問題。 – Gabe