X86汇编语言/性能最优化
外观
< X86組合語言
主页 > 计算机科学与技术书架 > X86汇编语言 > 性能最优化
依程序逻辑
[编辑]- 简化运算
- 查表(例如: 数值表, 跳跃表), 来避免出现连续的比较与跳跃.
- 循环展开
- 避免使用多层的巢式循环.
- 函数简化
- 避免使用堆栈来传递简单的参数值, 应善用寄存器来传值.
依CPU的特性
[编辑]- 打散前后指令的相依性
- 现今的CPU大多具有多条的整数运行管线, 如果在写程序时, 就预先避免出现前后的指令使用相同的寄存器的话, 可以有效的提升运行性能.
- 使用多媒体指令集(MMX, SSE, 3Dnow!)
- 由于多媒体指令集可以一次处理多笔的运算(SIMD), 所以可以有效的改善性能.
- 避免交叉使用MMX与浮点运算
- 部分的CPU由于是MMX与浮点运算, 共享寄存器, 所以当频繁切换这两种计算方式时, 需要多花时间去跑清除mmx寄存器的指令.
- 比特对齐
- 目前大部分的CPU, 在访问存储器的地址为8的比特对齐时, 会比较快.