X86組合語言/效能最佳化
< X86組合語言
首頁 > 電腦科學與技術書架 > X86組合語言 > 效能最佳化
依程式邏輯
編輯- 簡化運算
- 查表(例如: 數值表, 跳躍表), 來避免出現連續的比較與跳躍.
- 迴圈展開
- 避免使用多層的巢式迴圈.
- 函式簡化
- 避免使用堆疊來傳遞簡單的參數值, 應善用暫存器來傳值.
依CPU的特性
編輯- 打散前後指令的相依性
- 現今的CPU大多具有多條的整數執行管線, 如果在寫程式時, 就預先避免出現前後的指令使用相同的暫存器的話, 可以有效的提升執行效能.
- 使用多媒體指令集(MMX, SSE, 3Dnow!)
- 由於多媒體指令集可以一次處理多筆的運算(SIMD), 所以可以有效的改善效能.
- 避免交叉使用MMX與浮點運算
- 部分的CPU由於是MMX與浮點運算, 共享暫存器, 所以當頻繁切換這兩種計算方式時, 需要多花時間去跑清除mmx暫存器的指令.
- 位元對齊
- 目前大部分的CPU, 在存取記憶體的位址為8的位元對齊時, 會比較快.