是否有任何 Java 缓存可以限制内存中缓存的内存使用量,而不仅仅是实例计数?
我正在寻找一个简单的内存中(和进程内)缓存,用于查询数据的短期缓存(但短期含义超出请求/响应,即会话边界)。EhCache可能会起作用,但看起来它可能没有提供我需要的一件事:不是对缓存对象数量的限制,而是对缓存数据消耗的内存量的限制。
我知道,如果不进行序列化,很难弄清楚给定对象的确切内存使用情况(一般来说,由于它的缓慢性违背了我的使用目的,我想避免这种情况),而且我自己必须提供大小估计。
那么:有没有一个简单的开源java缓存,允许定义缓存对象的“权重”,以限制缓存的内容量?
编辑(2010年11月):值得一提的是,有一个名为Java CacheMate的新项目试图解决这个问题,以及其他一些改进想法(多级内存中进程内缓存)