当前位置: 首页 > 面试题库 >

从Node.js释放所需的模块

拓拔麒
2023-03-14
问题内容

如何在运行时释放Node.js模块以节省内存或提高整体性能。

我的应用程序在运行时会在Node.js中动态加载模块,但不会卸载其中的任何模块。我正在寻找这种功能,特别是。在代码加载模块后更新已更改的模块;并卸载可能不再使用的模块。

有什么见解吗?

谢谢。


问题答案:

听起来您正在创建某种插件系统。我将看看Node VM:http:
//nodejs.org/docs/latest/api/vm.html

它允许您在沙箱中加载和运行代码,这意味着完成后应重新释放其所有内部分配。

它被标记为不稳定,但这并不意味着它不起作用。这意味着API在将来的Node版本中可能会更改。

例如,基于节点的smtp服务器Haraka使用VM模块来(重新)加载插件。



 类似资料:
  • 我已经安装了Android Studio版本1.0.1。我已经从eclipse导入了我的项目,它工作得很好。然后我删除了一个模块,并将其重新导入到我的Android Studio项目中。gradle build显示“build Successful”,但它会弹出一个警告窗口,显示消息 无法完成Gradle执行。原因:已释放:模块:“MyModuleName” 我现在无法启动我的应用程序。知道我能做

  • 这是我对Rest模板的配置,

  • 问题内容: 我已经将我的代码分解为许多Typescript类和接口,尽管它可以很好地工作并且非常适合测试和维护,但我想知道是否有更好的方法来构造所需的对象。据我所知,我的选择是要求和构造如下: 要么 是否有其他解决方案或模式可以替代此选项,以使其更易于阅读/使用? 问题答案: 如果需要在给定的模块中创建多个对象,则可以使用第一个方案,首先将模块句柄保存到局部变量,以便可以多次引用它: 如果您只需要

  • 问题内容: 最近,我碰上了这篇文章如何写在Node.js的一个单 我知道以下 状态的文档: 第一次加载模块后将对其进行缓存。多次调用可能不会导致模块代码多次执行。 因此,似乎每个需要的模块都可以轻松地用作单例,而无需单例样板代码。 题: 上面的文章是否提供了有关创建单例的解决方案? 问题答案: 这基本上与nodejs缓存有关。干净利落。 https://nodejs.org/api/modules

  • 我们在庄园疑云中讲到了服务器上的数据。当时我们是用手动的方式,直接在数据库插入数据。我们将允许客户向服务器传递数据。 表格是客户向服务器传数据的经典方式。我们先会看到传统的表格提交,然后了解Django的表格对象。 “我可不做赔本的买卖”,庄主对姜戈说。 html表格 HTTP协议以“请求-回复”的方式工作。客户发送请求时,可以在请求中附加数据。服务器通过解析请求,就可以获得客户传来的数据,并根据

  • 问题内容: 我对等待和通知/ notifyAll感到有些困惑。 我知道每个Java对象都有一个锁。我知道等待将释放其他线程的锁。notify / notifyall怎么样?notify / notifyAll是否释放它为其他线程持有的锁? 问题答案: 否- / 不要像那样释放锁。唤醒的线程直到调用的代码释放其锁后才能运行。 这就是Javadoc所说的: 该线程释放此监视器的所有权,并等待直到另一个