我是Javascript的初学者,我正在重构一些使用require
的代码。我想知道如果只是在运行时间内使用了几次,那么在功能范围内只需要“外部库”是否有任何内存优势。
例如:在我现有的代码中,我使用fast-csv
但我只在一个函数中使用它,它只会很少被调用。
我现在拥有的:
const csv = require("fast-csv");
function importCSV(filepath) {
csv.fromPath(filepath, { headers: true, ignoreEmpty: true })
.on("data", function (data) {
// do some stuff
})
.on("end", function () {
// finish up
});
}
这在内存使用方面是否更好?
function importCSV(filepath) {
var csv = require("fast-csv");
csv.fromPath(filepath, { headers: true, ignoreEmpty: true })
.on("data", function (data) {
// do some stuff
})
.on("end", function () {
// finish up
});
}
不,我相信这里的内存使用量几乎没有差异,因为require
将内存中的模块缓存。例如,第一次调用require('fast-csv')
时,它会从磁盘中读取文件。随后对require('fast-csv')
的调用使用require.cache
中的缓存对象。
您可以从缓存中删除该模块,但这将减慢将来的需求调用。担心内存中模块的大小似乎是一种过早的优化。