gpt4 book ai didi

javascript - Node 中模块与类的性能影响

转载 作者:行者123 更新时间:2023-11-30 21:12:30 25 4
gpt4 key购买 nike

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

最佳答案

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

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)

Fastest is Data as module

结果很合乎逻辑,每次都需要用 new 实例化类模块,而且内存消耗会更高,新类返回一个带有原型(prototype)链的实例。

基准代码:

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

关于javascript - Node 中模块与类的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45997587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com