node.js - 是否可以在 nodejs 中释放所需的模块?
问题描述
当你import
在 nodejs 中创建一个文件时,它会被加载、评估和缓存。
如果您知道您将永远不会再次使用它(或者可能在很长一段时间内,值得再次编译它),是否可以释放该文件的内存。
我想要做的是导入一个临时文件,读取它的代码,执行一次然后永远释放它(我知道它不会再次被使用,我不想有内存泄漏)
基本上是在nodejs中有动态代码。
像codility这样的页面允许您输入代码并在后端执行,应该使用类似的解决方案......除非他们使用该代码运行一个完整的新 nodejs 实例......然后将其杀死。
可能吗?如果是这样,怎么做?
解决方案
您可以像这样从模块缓存中删除。只要确保没有循环依赖,否则模块实际上不会从内存中释放
delete require.cache[require.resolve('./theModuleYouWantToDelete.js')]
推荐阅读
- python - 为什么我的代码在 pycharm 中有效,但在 Visual Studio 代码中无效?
- c++ - c ++ getline(cin)不弹出输入
- tensorflow - 如何在多类预测中得到未知类?
- ios - iOS SwfitUI为列表而不是单元格设置背景图像
- css - ngbTooltipConfig 工具提示类未加载自定义样式工具提示
- linux - 数学:CDF perl 库 - 安装问题
- kotlin - 为什么 Kotlin smart cast 不起作用,即使两者都是`val`s
- data-binding - KnockoutJs : ko.mapping.fromJS 和 binding => 如何正确执行?
- sql-server - SQL Server 中的数字格式
- spring-boot - Splunk 与 Spring Boot 的集成