美文网首页
达夫设备(Duff`s Device)减少迭代次数

达夫设备(Duff`s Device)减少迭代次数

作者: 刘翾 | 来源:发表于2017-11-09 08:58 被阅读42次

"Duff`s Device"是一个循环体展开技术, 它使得一次迭代中实际执行了多次迭代的操作. Jeff Greenberg被认为是将"Duffs Device"代码从原始C实现移植到JavaScript中的第一个.

代码:

var iterations = Math.floor(items.length / 8),
    startAt = items.length % 8,
    i = 0;

do {
    switch (startAt) {
        case 0:
            process(items[i++]);
        case 7:
            process(items[i++]);
        case 6:
            process(items[i++]);
        case 5:
            process(items[i++]);
        case 4:
            process(items[i++]);
        case 3:
            process(items[i++]);
        case 2:
            process(items[i++]);
        case 1:
            process(items[i++]);
    }
    startAt = 0;
} while (--iterations)

相关文章

  • 达夫设备(Duff`s Device)减少迭代次数

    "Duff`s Device"是一个循环体展开技术, 它使得一次迭代中实际执行了多次迭代的操作. Jeff Gre...

  • 笨办法学C 练习23:认识达夫设备

    练习23:认识达夫设备 原文:Exercise 23: Meet Duff's Device 译者:飞龙 这个练习...

  • 达夫设备(Duff's device)

    若干年前在校园招聘的时候,做到了这样一道笔试题, 当时一头雾水,并没有做出来: 问题: 下面这段代码的作用是什么?...

  • JavaScript 迭代优化(Duff's Devic

    众所周知,过多的循环会带来一定的性能开销,增加总体运行时间。而减少迭代次数能够优化性能。"Duff's Devic...

  • Duff's Device

    所谓的Duff's Device其实只是一种代码的特殊写法,他将switch和do...while结合起来使得算法...

  • Duff's device是什么

    2020-4-14今天,我在知乎上面看到一个很有意思的回答,在这里附上链接哪段代码最能代表程序员的暴力美学其中,一...

  • 简析duff device

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

  • 3.It’s digital heroin

    十个单词:therapy治疗['θerəpɪ]device设备[dɪ'vaɪs]educational[edʒʊ'...

  • [现代操作系统] I/O之硬件原理

    I/O 硬件原理 I/O 设备块设备(block device)字符设备(character device) 设备...

  • (设备)Device

    Device 访问底层设备和平台的信息。Repo(备用): https://github.com/apache/c...

网友评论

      本文标题:达夫设备(Duff`s Device)减少迭代次数

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