I代码优化之优化条件分支 I2).docxVIP

  • 7
  • 0
  • 约6.44千字
  • 约 9页
  • 2017-01-12 发布于四川
  • 举报
代码优化-之-优化条件分支??HouSisong@GM 2007.10.05tag:代码优化,条件分支,饱和,MMX,CMOV,掩码摘要: 条件分支是编程中经常使用的基本操作,然而在某些时候它确可能带来严重的性能问题.当前的CPU都能对条件分支做预测(动用了庞大的晶体管资源),如果分支预测正确,那么条件指令一般只需要花费一个CPU周期,而如果预测错误,那么将可能花费几十个CPU周期! 本文将讨论条件分支的一些有效优化方法.正文: 文章为收集加经验编辑而成的文章,对优化条件分支做了较全面的阐述.?文章假定的CPU为x86,示例代码为C/C++.A.什么是分支? 分支是编程语言中的常见结构;分支可以分为条件分支和非条件分支; 条件分支举例: 条件判断: if (a255) a=255; else if (a0) a=0; 循环: for (i=0;i1000;++i) { ...; } while(!bOk) { bOk=...;? }? ... 对应汇编指令的jnz,jg等等 非条件分支举例: 函数调用(call),函数返回(return/ret),软件中断(int 3),直接跳转(jmp),...??B.CPU分支预测错误的惩罚由来 为了加快CPU的处理频率,现代CPU都设计了多级流水线,有的甚至有20级以上;当CPU遇到跳转指令的时候,会做一个预测,把预测的分支代码载入流水线,当

文档评论(0)

1亿VIP精品文档

相关文档