如何優化循環

  • 2019 年 10 月 4 日
  • 筆記

△向上生長, TO BE TO UP. 程式設計師成長充電站△

如何成為優秀程式設計師第 8/100 期分享 閱讀本文大概需要 5 分鐘

有時候你會遇到循環,或者遞歸函數,它們會花費很長的執行時間,可能是你的產品的瓶頸。在你嘗試使循環變得快一點之前,花幾分鐘考慮是否有可能把它整個移除掉,有沒有一個不同的演算法?你可以在計算時做一些其他的事情嗎?如果你不能找到一個方法去繞開它,你可以優化這個循環了。這是很簡單的,move stuff out。最後,這不僅需要智慧而且需要理解每一種語句和表達式的開銷。這裡是一些建議:

  • 刪除浮點運算操作。
  • 非必要時不要分配新的記憶體。
  • 把常量都放在一起聲明。
  • 把 I/O 放在緩衝里做。
  • 盡量不使用除法。
  • 盡量不適用昂貴的類型轉換。
  • 移動指針而非重新計算索引。

這些操作的具體代價取決於你的具體系統。在一些系統中,編譯器和硬體會為你做一些事情。但必須清楚,有效的程式碼比需要在特殊平台下理解的程式碼要好。

下一節:如何優化I/O處理