我正在寻找一个简单的内存(和进程中)缓存,用于查询数据的短期缓存(但短期意义超出请求/响应,即会话边界).EhCache可能会工作,但看起来好像它可能不提供我需要的东西:限制不是缓存的对象数量,而是(大致)限制缓存数据消耗的内存量.
我知道很难在没有序列化的情况下找出给定对象的确切内存使用情况(我想避免在一般情况下因为它的速度慢而无法实现我的用途),而且我自己也不得不提供大小估计.
那么:是否有一个简单的开源java缓存,允许定义缓存对象的"权重",以限制缓存的事物数量?
编辑(2010年11月):对于它的价值,有一个名为Java CacheMate的新项目试图解决这个问题,以及其他一些改进的想法(多级内存中进程缓存)