parallel-list

1.1.2 • Public • Published

并行列表计算

对于一些大量list的较为耗时的操作,可使用多核cpu的并行能力加速 对API进行了一次封装,使用起来较为简单

接口

const Parallel = require('parallel-list');
const parallel = new Parallel(5); // 同时使用的cpu数量
parallel.run({
  file: path.join(__dirname, './main.js'), // 计算的文件
  list: [], // 数据
})

Demo

const path = require('path');
const Parallel = require('parallel-list');

const parallel = new Parallel(5);

const TEST_LENGTH = 1000;
const list = Array.from({ length: TEST_LENGTH }).map((item, index) => index);

console.log('run demo');
;(async function() {
  console.time('总时间');
  const data = await parallel.run({
    file: path.join(__dirname, './main.js'), // 单次计算 10ms
    list: list,
  })
  console.timeEnd('总时间');

  console.log(`理论耗时:${TEST_LENGTH * 10 / 1000}s`);

  console.log('执行结果');
  console.log(data);
  parallel.close();
})();

main.js

console.log('init main')

module.exports = function(item) {

  // 方法计算单次耗时 10ms
  const start = Date.now();
  while((Date.now() - start) < 10) {}

  return Math.sqrt(item);
}

Package Sidebar

Install

npm i parallel-list

Weekly Downloads

2

Version

1.1.2

License

ISC

Unpacked Size

5.09 kB

Total Files

9

Last publish

Collaborators

  • langlangxu123