X86组合语言/效能最佳化

首页 > 电脑科学与技术书架 > X86组合语言 > 效能最佳化


依程式逻辑

编辑
  1. 简化运算
    查表(例如: 数值表, 跳跃表), 来避免出现连续的比较与跳跃.
  2. 回圈展开
    避免使用多层的巢式回圈.
  3. 函数简化
    避免使用堆叠来传递简单的参数值, 应善用暂存器来传值.

依CPU的特性

编辑
  1. 打散前后指令的相依性
    现今的CPU大多具有多条的整数执行管线, 如果在写程式时, 就预先避免出现前后的指令使用相同的暂存器的话, 可以有效的提升执行效能.
  2. 使用多媒体指令集(MMX, SSE, 3Dnow!)
    由于多媒体指令集可以一次处理多笔的运算(SIMD), 所以可以有效的改善效能.
  3. 避免交叉使用MMX与浮点运算
    部分的CPU由于是MMX与浮点运算, 共用暂存器, 所以当频繁切换这两种计算方式时, 需要多花时间去跑清除mmx暂存器的指令.
  4. 位元对齐
    目前大部分的CPU, 在存取记忆体的位址为8的位元对齐时, 会比较快.