Java Ehcache低内存行为

Java Ehcache低内存行为,java,hibernate,ehcache,out-of-memory,Java,Hibernate,Ehcache,Out Of Memory,我正在使用ehcache 1.2.3。由于缓存大小是根据“元素”指定的,因此 缓存占用的内存可能会有很大差异(ehcache与 hibernate并保存标准查询缓存,其中查询返回结果集 大小可能不同)。我的问题是:如果JVM内存不足会发生什么。我的 阅读ehcache的changelog给人的印象是,它最初使用的是soft 引用,但由于Java1.4正在大力清理它们,软引用 最终被放弃。因此,如果缓存太大,我只会 OutOfMemoryError?Ehcache中没有任何试图阻止它的内容?你是正

我正在使用ehcache 1.2.3。由于缓存大小是根据“元素”指定的,因此 缓存占用的内存可能会有很大差异(ehcache与 hibernate并保存标准查询缓存,其中查询返回结果集 大小可能不同)。我的问题是:如果JVM内存不足会发生什么。我的 阅读ehcache的changelog给人的印象是,它最初使用的是soft 引用,但由于Java1.4正在大力清理它们,软引用 最终被放弃。因此,如果缓存太大,我只会
OutOfMemoryError?Ehcache中没有任何试图阻止它的内容?

你是正确的,如果你想用Ehcache创建OOM,你可以这样做。您看过大小调整选项了吗,尽管类似于maxEntriesLocalHeap/maxBytesLocalHeap。使用这些可以有效地防止缓存使用超过分配的内存量


例如,请参见

谢谢,我确实有这样的印象,即在最新版本的Ehcache中,可以明确限制内存消耗。但我的问题是关于Ehcache 1.2.3的,因为这是我正在开发的系统中使用的。同样,目前我的印象(没有实验支持)是,如果缓存使用的内存太大(与使用的元素数量相反),Ehcache 1.2.3将不会尝试逐出条目以限制内存消耗。