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

来源:互联网 发布:东华软件金融部 编辑:程序博客网 时间:2024/05/09 03:29

“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)