5

我正在使用 ehcache 1.2.3。由于缓存大小是根据“元素”指定的,因此缓存占用的内存可能会有很大差异(ehcache 与 hibernate 一起使用,并且还保存标准查询缓存,其中查询返回的结果集大小可能会有所不同)。我的问题是:如果 JVM 内存不足会发生什么。阅读 ehcache 的更新日志给我的印象是,最初它使用的是软引用,但由于 java 1.4 正在积极地清理它们,软引用最终被删除了。因此,如果缓存变得太大,我只会得到 OutOfMemoryError?Ehcache 中没有任何东西试图阻止它?

4

1 回答 1

1

你是对的,如果你想用 ehcache 创建一个 OOM,你可以这样做。你有没有看过尺寸选项,虽然像 maxEntriesLocalHeap / maxBytesLocalHeap。使用这些可以有效地防止缓存使用超过分配的内存量。

参见例如http://ehcache.org/documentation/configuration/cache-size

于 2012-06-22T09:45:23.940 回答