【发布时间】:2026-01-21 08:25:02
【问题描述】:
我来自 Java 世界,并且有很多(本地)内存缓存的实现。此外,在 Java 世界中还有 SoftReference 和 WeakReference,根据定义,它们是缓存实现的理想选择。
我知道 JavaScript 没有类似的东西,所以我想知道是否有可能具有某种缓存功能,如果存在“低内存压力”,它会删除/释放(所有)缓存对象。到目前为止,我知道lru-cache 模块,但它的实现将对象保持在某个数量/大小,这很好,但还不够好,因为如果没有足够的内存,你自然会期望缓存释放对象.
当进程内存不足时,甚至可以从系统中获取 NodeJS 中的某些事件吗?
或者可能是一些可以引发事件的库,例如:
var cmmm = require('cool_memory_management_module');
cmmm.on('low_memory', function(){
//signaling to clear cache entries
});
到目前为止,我已经找到了 npm memwatch 和 npm usage 模块,但仍然无法将所有这些部分组合在一起。
【问题讨论】:
-
我找到了这些:nodejs.org/api/process.html#process_process_memoryusage、nodejs.org/api/os.html#os_os_freemem。我不知道进程和内存之间的关系如何判断这些功能是否是您需要的。
-
thx @Andreas,我见过这个,但它们不足以实现“低内存事件”,并且 os.freemem() 在应用程序进程中是无用的,因为这不是内存您只能使用有关您的环境的信息...
标签: node.js caching memory weak-references low-memory