java - 使用具有不同关联大小的 LRU 的处理器缓存的通用实现
问题描述
所以我在 Java 中做这个项目来模拟 CPU 缓存命中/未命中,关联范围可以从 1(直接映射)、2、4、8、16(完全关联)
如果我们需要腾出空间,它使用最近最少使用 (LRU) 方案来确定在缓存中删除什么。出于本练习的目的,不得使用第三方库,但可以使用任何版本的 Java。
对于直接映射,只需使用 LinkedHashMap 来设置集合就很容易了
但是我是否能够适应不同的关联大小,比如 4。
设置 1 0000 0001 0002 0003
设置 2 0000 0001 0002 0003
设置 3 0000 0001 0002 0003
设置 4 0000 0001 0002 0003
我正在考虑只使用带有双向链表的 LinkedHashMap,但可能会使事情过于复杂?
我在这里拿大锤敲鸡蛋吗?欢迎任何想法。
LinkedHashMap<String, Node>
class Node{
String value;
Node prev;
Node next;
public Node(String value){
this.value=value;
}
}
解决方案
推荐阅读
- c# - .NETStandard 多目标库包在 Netstandard 2.0 项目中出现 CS0234 错误
- python - 如何在文档字符串的表格中设置代码块对齐方式?
- svelte - 将数据传递给组件时使用扩展属性与整个对象
- android - 如何使用 kotlin 从 firebase 实时数据库中检索数据
- c++ - c++编译错误使用set [二进制表达式的无效操作数('const Room'和'const Room')]
- php - 无法在 PHP 中访问 OpenSSL eNULL 密码
- laravel - 未能按升序在赛普拉斯上以秒为单位比较日期
- java - 是否可以从类路径外部给出步骤定义文件,即来自文件系统
- python - 尝试用 Python 制作闹钟,但它不起作用
- visual-studio-code - vscode 代码扩展 java 测试运行器既不显示消息也不显示堆栈跟踪