zoukankan      html  css  js  c++  java
  • duff's device

    const duffDevice = (items, process) => {
      let iterations = Math.floor(items.length / 8);
      let startAt = items.length % 8;
      let 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);
    };
    
    const process = (i) => {
          sum = sum + i;
    }
    
    const items = new Array(10000).fill(1);
    
    let sum = 0;
    
    const startCal = () => {
      sum = 0;
      
      console.time('1');
      duffDevice(items, process);
      console.log('sum', sum);
      console.timeEnd('1');
    
      sum = 0;
     
      console.time('2'); 
      for(var i = 0, l = items.length; i < l; i++) {
        process(items[i]);
      }
      console.log('sum', sum);
      console.timeEnd('2');
    }
  • 相关阅读:
    Celery
    mysql 8.0.12 创建并授权出现的问题
    request对象
    Haystack搜索框架
    Django的缓存机制
    跨域问题
    解析器
    url控制器与响应器
    学期总结
    C语言I博客作业09
  • 原文地址:https://www.cnblogs.com/nanchen/p/10651138.html
Copyright © 2011-2022 走看看