1 / 8
文档名称:

代码优化-之-优化条 件分支.doc

格式:doc   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

代码优化-之-优化条 件分支.doc

上传人:企业资源 2012/1/4 文件大小:0 KB

下载得到文件列表

代码优化-之-优化条 件分支.doc

文档介绍

文档介绍:代码优化-之-优化条件分支
                   HouSisong@  
tag:代码优化,条件分支,饱和,MMX,CMOV,掩码
摘要: 条件分支是编程中经常使用的基本操作,然而在某些时候它确可能带来严重的性能问题.
当前的CPU都能对条件分支做预测(动用了庞大的晶体管资源),如果分支预测正确,那么条件
指令一般只需要花费一个CPU周期,而如果预测错误,那么将可能花费几十个CPU周期!
  本文将讨论条件分支的一些有效优化方法.
正文:
  文章为收集加经验编辑而成的文章,对优化条件分支做了较全面的阐述. 
文章假定的CPU为x86,示例代码为C/C++.
?
  分支是编程语言中的常见结构;分支可以分为条件分支和非条件分支;
  条件分支举例:
    条件判断: if (a>255) a=255; else if (a<0) a=0;
    循环: for (i=0;i<1000;++i) { ...; }
          while(!bOk) { bOk=...;  } 
          ...
    对应汇编指令的jnz,jg等等
  非条件分支举例:
    函数调用(call),函数返回(return/ret),软件中断(int 3),直接跳转(jmp),...
  

  为了加快CPU的处理频率,现代CPU都设计了多级流水线,有的甚至有20级以上;
当CPU遇到跳转指令的时候,会做一个预测,把预测的分支代码载入流水线,当
发现预测错误的时候,需要清空流水线,重新载入正确的分支到流水线;那么预
测错误的代价周期数至少应该和流水线长度相当;然而考虑到各级的缓存失效、指
令解码等等,实际损失的周期数有可能是流水线长度的几倍!
   对于非条件分支,一般来说CPU都能得到相当高的预测准确率;我们主要来讨论
一下条件分支的预测;
 (有人可能会说,当CPU遇到条件分支时不做预测不就没有预测错误的惩罚了吗? 
这种流水线空着的惩罚实质和每次都预测错误然后清空流水线的代价相当,退一步
说就算每次随机选择一个分支来执行也有50%的收益)
C:需要优化的条件分支
  当前的CPU对各种简单的条件分支模式都能做出很的预测,比如奇偶模式:
  for (int i=0;i<1000;++i)
  {
     if (a%2==0) do0();
     else do1();
  }
  而对于随机的分支模式,再好的预测器也不可能做出好的预测;
  我们要优化条件分支,这些分支代码应该满足:该分支处于时间热点上,并且
分支预测错误率较高;这样我们才能得到优化的收益;
   (intel的VTune工具可以采样分支预测错误率)

  比如前面的那个奇偶循环模式,假设CPU不能正确预测,那么可以尝试改写为两个
for循环,一个处理偶数,一个处理奇数;
  一些图像处理算法里(比如模板运算/卷积运算/形态学运算等),经常需要判断边
界像素点,进行特殊处理;可以考略的优化方案是把边界区域和内部区域分开处理;
或者条件允许的话,可以扩大原图像

最近更新

二零二五年度苗圃项目股权转让与投资合作协议.. 9页

人力资源发展保障措施 6页

二零二五年度股权清算与分配合同 8页

人力行政的年终述职(3) 4页

二零二五年度终止股权转让解除合同 8页

事业单位人力资源管理中的激励机制建设 3页

临床药学本科毕业论文题目(精选125个) 6页

二零二五年度电商物流优化顾问服务协议 10页

中小企业困境应对与发展策略 4页

中学美术课堂教学模式的现状及对策研究 5页

中国科技创新与低碳经济的协调发展研究 4页

二零二五年度物业服务合同客户满意度提升补充.. 8页

二零二五年度温馨家园租赁安全协议 9页

二零二五年度海鲜行业质量安全检测服务合同 8页

【浅谈企业绩效管理论文】浅谈企业员工绩效评.. 6页

二零二五年度民法典离婚协议书:婚姻终止财产.. 9页

《绿色化学》教学大纲 4页

《政府会计制度》改革对事业单位财务管理的影.. 6页

二零二五年度智能制造与工业机器人研发课题研.. 10页

二零二五年度明星艺人经纪代理合同——经纪公.. 9页

二零二五年度新能源项目银行过桥垫资服务合同.. 10页

二零二五年度新材料研发企业股权转让协议 9页

二零二五年度文化创意产业落户房屋租赁服务合.. 9页

二零二五年度教育机构图书及教材采购合作协议.. 9页

gqkbaAAA绩效考核过程中存在的问题及其对策 3页

二零二五年度影视基地租赁合同 9页

600839四川长虹2025年上半年财务指标报告 3页

二零二五年度工业用地土地租赁合同协议 9页

2025年音乐学科组计划(三) 6页

2025年终工作总结参考范本(6) 6页