循环展开

循环展开,英文中称(Loop unwinding或loop unrolling),是一种牺牲程序的尺寸来加快程序的执行速度的优化方法。可以由程序员完成,也可由编译器自动优化完成。

循环展开最常用来降低循环开销,为具有多个功能单元的处理器提供指令级并行。也有利于指令流水线的调度。

优点

分支预测失败减少
如果循环体内语句没有数据相关,增加了并发执行的机会
可以在执行时动态循环展开。这种情况在编译时也不可能掌握。

缺点

代码膨胀
代码可读性降低,除非是编译器透明执行循环展开。
循环体内包含递归可能会降低循环展开的得益
引用自wiki
https://zh.wikipedia.org/wiki/%E5%BE%AA%E7%8E%AF%E5%B1%95%E5%BC%80

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容