对Node中的Module Vs类的性能影响

时间:2017-09-01 09:53:19

标签: javascript node.js

我有两组代码和gona用于获取结果,我只是想知道两种方式是否可以完成。

//dataService.js

module.exports = {
getData: function(){// return data from some sync source}
}

const DataService = require(‘./dataService’);
console.log(DataService.getData());

另一种方式

//dataService.js
var DataService = Class DataService {
  getData (){ / return data from some sync source}
}
module.exports = DataService

const DataService = require(‘./dataService’);
console.log((new DataService()).getData());

请帮助我理解,当我们加载超过100万个请求时,两个代码在性能和标准方面都很好。

1 个答案:

答案 0 :(得分:0)

我做了一个基准测试得到了以下结果:

Class Data x 22,047,798 ops/sec ±0.88% (88 runs sampled)
Data as module x 31,695,587 ops/sec ±0.97% (89 runs sampled)
  

最快的数据为模块

结果非常符合逻辑,每次使用new的类模块时内存消耗量也会更高,新类正在返回带有原型链接的实例。 < / p>

基准代码:

const Benchmark = require('benchmark');

const moduleData = require('./modules/module-data');
const ClassData = require('./modules/class-data');

var suite = new Benchmark.Suite;

// add tests 
suite.add('Class Data', function () {
  new ClassData().getData();
})
  .add('Data as module', function () {
    moduleData.getData();
  })
  // add listeners 
  .on('cycle', function (event) {
    console.log(String(event.target));
  })
  .on('complete', function () {
    console.log('Fastest is ' + this.filter('fastest').map('name'));
  })
  // run async 
  .run({ 'async': true });