性能对节点模块V类的影响

我有两套代码和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万的请求加载时,两个代码在性能和性能方面都很好。

我做了一个基准testing,结果如下:

 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的类模块也会消耗更多的内存,新的类正在返回一个实例和原型链接。

基准代码:

 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 });