我来自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个模块,但仍然无法将所有这些部分组合在一起。
答案 0 :(得分:4)
JS中还没有WeakReference
或类似内容,但是应该进入ES6 (Version List)。
到目前为止,现在你可以构建一些只需每隔几秒检查一次内存是否用尽并清理地图的内容。
setInterval(function() {
/* check if memory low and do something */
}, 2000).unref();