美文网首页
循环展开

循环展开

作者: Destinyzry | 来源:发表于2018-12-20 10:23 被阅读0次

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

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

优点

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

缺点

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

相关文章

  • 循环展开

    循环展开,英文中称(Loop unwinding或loop unrolling),是一种牺牲程序的尺寸来加快程序的...

  • Duff

    一种循环展开的策略:“小步合并成为大步”,在memcpy的实现中有用到。image.pngimage.png

  • C++ 优化:for循环展开

    我写了一段代码: 运行结果如下: 我们可以看到,在for循环展开可以提高代码的执行效率,主要的原因有以下两点1、提...

  • vue 使用 v-for 让 table 纵向展开分组

    需要展现这样一个表格 分析:需要循环展开每排表格,同时行上有分组,采用行模板模式 table的 tbody 带 ...

  • 简析duff device

    达夫设备是一个很棒的迂回循环展开法,是由Tom Duff在Lucasfilm时所设计的。它的传统的形态是用来复制多...

  • 第五章:优化程序性能

    本章主要介绍了妨碍编译器进行大量优化的因素,比如内存别名使用和过程调用,同时还介绍了循环展开技术,它可以利用现代处...

  • 深入理解编译优化之循环展开和粗化锁

    简介 之前在讲JIT的时候,有提到在编译过程中的两种优化循环展开和粗化锁,今天我们和小师妹一起从Assembly的...

  • 总经理的工作

    管理三要素和执行四步法。所谓总经理,就是不断地围绕这两个方面循环展开工作的过程,宏观上践行管理三要素,微观上践行执...

  • ElementUI tree 异步树(懒加载)循环展开指定子节点

    项目中根据子节点 id 展开异步树节点,需要后端返回 当前子节点的左右父级节点id集合

网友评论

      本文标题:循环展开

      本文链接:https://www.haomeiwen.com/subject/acgekqtx.html