需求和记忆:用于全局或功能范围

时间:2019-03-16 16:46:17

标签: javascript requirejs

我是Java的相对入门者,正在重构一些使用LoginViewModel的代码。我想知道,如果仅在运行时寿命中使用几次外部库,仅在功能范围内“要求”外部库是否有任何内存优势。

例如:在我现有的代码中,我使用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
            });
}

1 个答案:

答案 0 :(得分:0)

不,我相信这里的内存使用差异很小或没有差异,因为require将模块缓存在内存中。例如,第一次调用require('fast-csv')时,它将从磁盘上读取文件。随后对require('fast-csv')的调用将使用require.cache中的缓存对象。

您可以从缓存中删除模块,但这会减慢将来的需求调用。担心内存中模块的大小似乎为时过早。