首页 > 解决方案 > 使用具有不同关联大小的 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;
    }
}

标签: javacachingdata-structures

解决方案


推荐阅读