需要部分JavaScript文件的内存使用

需要部分JavaScript文件的内存使用,javascript,node.js,memory,Javascript,Node.js,Memory,假设有一个文件mod.js,其中包含许多函数和变量,其中大多数是使用module.exports导出的 如果我只想使用其中一个导出函数,请在以下选项之间: const mod = require("./mod"); mod.function(); 或 内存使用是否存在敏感差异?节点是否删除mod.js中未引用的元素以节省内存?加载模块会将模块中的所有代码加载到服务器内存中。它不知道可以调用或不调用什么代码,也不删除任何未使用的代码 通常,服务器上代码的内存使用是无关紧要的(服务器端内存,代码只

假设有一个文件
mod.js
,其中包含许多函数和变量,其中大多数是使用
module.exports
导出的

如果我只想使用其中一个导出函数,请在以下选项之间:

const mod = require("./mod");
mod.function();


内存使用是否存在敏感差异?节点是否删除mod.js中未引用的元素以节省内存?

加载模块会将模块中的所有代码加载到服务器内存中。它不知道可以调用或不调用什么代码,也不删除任何未使用的代码

通常,服务器上代码的内存使用是无关紧要的(服务器端内存,代码只加载一次)。如果您不想加载不使用的代码,那么您需要重构模块,以便只加载实际需要的代码。这是节点模块的要点之一。装你需要的,不要装你不需要的。将模块设计为可一起加载的有用代码包

内存使用是否存在敏感差异

通常不适用于服务器,除非您有一个巨大的模块。模块通常不应该足够大,以至于仅仅通过加载代码就可以大大减少服务器端内存。如果是的话,那么它们可能会被分成更小的碎片,可以根据需要进行装载

节点是否删除mod.js中未引用的元素以节省内存


不,它没有。

我同意“重构模块,以便只加载实际需要的代码”这句话,但这听起来不现实。一些例子:loadash,一个加密库,你只需要一些东西,等等。@lilezek-好吧,你要求的是node.js没有的功能。我正在向您描述它是如何工作的以及您的选择是什么。如果某个特定的第三方模块在这种情况下确实是个问题,那么您可以找到一些不太像猪的其他解决方案,将所需的代码从模块复制到您自己的模块中,等等。。。这些是你的选择。除非您处于内存受限的服务器环境中(比如Raspberry Pi或其他什么),否则您确定您的服务器上的代码占用了太多内存,这真的有问题吗?
const {function} = require("./mod");
function();