前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS做一个弱弱的弱缓存

JS做一个弱弱的弱缓存

原创
作者头像
黄希彤
修改2022-03-30 15:31:07
1.7K1
修改2022-03-30 15:31:07
举报
文章被收录于专栏:黄希彤的专栏黄希彤的专栏

写一个node的服务,压测的时候有一个请求没有缓存导致IO太高,直接加缓存的话又担心内存占用太大挤爆了。写一个检测系统内存情况的缓存管理模块又有点太麻烦了。能不能有一个内存充足的时候就缓存,在内存不够需要垃圾回收的时候就自动回收掉呢?在阮一峰那里看到ES2021支持弱引用了,因此现在在版本比较高的node上也可以用弱引用很方便的实现一个弱缓存了:

代码语言:javascript
复制
const weakCache = new Map();//弱缓存,当占用内存太多的时候系统会自动回收
function setWeakCache(key,value){
	if("function"==typeof WeakRef){
		if(typeof value == "object" && !!value)
			weakCache.set(key, new WeakRef(value));
	}else{
		console.log("js版本太旧不支持弱引用")
	}
}
function getWeakCache(key){
	if(weakCache.has(key)){
		let value = weakCache.get(key).deref();
		if(!value) weakCache.delete(key);
		return value
	}
	return
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档