如何優化循環
- 2019 年 10 月 4 日
- 筆記
△向上生長, TO BE TO UP. 程式設計師成長充電站△
有時候你會遇到循環,或者遞歸函數,它們會花費很長的執行時間,可能是你的產品的瓶頸。在你嘗試使循環變得快一點之前,花幾分鐘考慮是否有可能把它整個移除掉,有沒有一個不同的演算法?你可以在計算時做一些其他的事情嗎?如果你不能找到一個方法去繞開它,你可以優化這個循環了。這是很簡單的,move stuff out。最後,這不僅需要智慧而且需要理解每一種語句和表達式的開銷。這裡是一些建議:
- 刪除浮點運算操作。
- 非必要時不要分配新的記憶體。
- 把常量都放在一起聲明。
- 把 I/O 放在緩衝里做。
- 盡量不使用除法。
- 盡量不適用昂貴的類型轉換。
- 移動指針而非重新計算索引。
這些操作的具體代價取決於你的具體系統。在一些系統中,編譯器和硬體會為你做一些事情。但必須清楚,有效的程式碼比需要在特殊平台下理解的程式碼要好。
下一節:如何優化I/O處理