当前位置: 首页 > news >正文

通过对象轮换实现 LRU 缓存结构

文章目录

  • 通过两个对象轮换,按照是否访问实现内容长久保存
  • rollup 的缓存实现
export default function (max) { //max 缓存容量var num, curr, prev;var limit = max || 1;function keep(key, value) {if (++num > limit) {prev = curr; // 超过容量时当前对象变成缓存reset(1);++num;}curr[key] = value;}// 1 是否清空缓存function reset(isPartial) {num = 0;curr = Object.create(null);isPartial || (prev=Object.create(null));}reset();return {clear: reset,has: function (key) {return curr[key] !== void 0 || prev[key] !== void 0;},get: function (key) {var val = curr[key];if (val !== void 0) return val;if ((val=prev[key]) !== void 0) { // 访问到缓存内容,让内容不过期keep(key, val); // 访问提取缓存,减少容量return val;}},set: function (key, value) {if (curr[key] !== void 0) {curr[key] = value;} else {keep(key, value); // 设置新内容,减少容量}}};
}
http://www.lryc.cn/news/262564.html

相关文章:

  • 【Unity动画】综合案例完结-控制角色动作播放+声音配套
  • 【工作流Activiti】任务组
  • 桌面概率长按键盘无法连续输入问题
  • 用23种设计模式打造一个cocos creator的游戏框架----(十九)备忘录模式
  • 动手学深度学习-自然语言处理-预训练
  • 力扣200. 岛屿数量(java DFS解法)
  • 解决el-table组件中,分页后数据的勾选、回显问题?
  • web网络安全
  • 若依 ruoyi-vue3 集成aj-captcha实现滑块、文字点选验证码
  • 安卓10 flutter webview 回退会闪退
  • 【Unity入门】物体5种移动方法
  • Elasticsearch的 8.x常用api汇总
  • k8syaml提供的几个有意思的功能,Kubernetes在线工具网站
  • 【图像分类】【深度学习】【Pytorch版本】 ResNeXt模型算法详解
  • Android 14 应用适配指南
  • 【AI美图提示词】第07期效果图,AI人工智能自动绘画,精选绝美版美图欣赏
  • 前端知识(十三)——JavaScript监听按键,禁止F12,禁止右键,禁止保存网页【Ctrl+s】等操作
  • 面向对象设计与分析(28)单例模式的奇异递归模板CRTP实现
  • 微信小程序 - 龙骨图集拆分
  • 使用React 18和WebSocket构建实时通信功能
  • vue3使用vue-router嵌套路由(多级路由)
  • openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-处理错误表
  • QT Widget - 随便画个圆
  • js输入框部分内容不可编辑,其余正常输入,el-input和el-select输入框和多个下拉框联动后的内容不可修改
  • 分布式文件存储系统minio了解下
  • 迅为RK3568开发板使用OpenCV处理图像-ROI区域-位置提取ROI
  • 重新认识Word——尾注
  • 所有学前教育专业,一定要刷到这篇啊
  • colmap三维重建核心逻辑梳理
  • 查询某个类是在哪个JAR的什么版本开始出现的方法