X86組合語言/效能最佳化

首頁 > 電腦科學與技術書架 > X86組合語言 > 效能最佳化


依程式邏輯

編輯
  1. 簡化運算
    查表(例如: 數值表, 跳躍表), 來避免出現連續的比較與跳躍.
  2. 迴圈展開
    避免使用多層的巢式迴圈.
  3. 函式簡化
    避免使用堆疊來傳遞簡單的參數值, 應善用暫存器來傳值.

依CPU的特性

編輯
  1. 打散前後指令的相依性
    現今的CPU大多具有多條的整數執行管線, 如果在寫程式時, 就預先避免出現前後的指令使用相同的暫存器的話, 可以有效的提升執行效能.
  2. 使用多媒體指令集(MMX, SSE, 3Dnow!)
    由於多媒體指令集可以一次處理多筆的運算(SIMD), 所以可以有效的改善效能.
  3. 避免交叉使用MMX與浮點運算
    部分的CPU由於是MMX與浮點運算, 共享暫存器, 所以當頻繁切換這兩種計算方式時, 需要多花時間去跑清除mmx暫存器的指令.
  4. 位元對齊
    目前大部分的CPU, 在存取記憶體的位址為8的位元對齊時, 會比較快.