2012-06-15 12 views
5

Estoy usando ehcache 1.2.3. Dado que el tamaño de caché se especifica en términos de "elementos", la memoria que ocupa el caché puede variar mucho (el ehcache se utiliza junto con hibernate y también contiene el caché de consultas estándar donde las consultas arrojan resultados de tamaño que pueden variar) Mi pregunta es: ¿qué sucede si JVM tiene poca memoria? Mi impresión de al leer el registro de cambios de ehcache es que inicialmente usaba referencias suaves de , pero como Java 1.4 las estaba limpiando de manera agresiva, las referencias suaves finalmente se descartaban. Por lo tanto, si la memoria caché es demasiado grande, obtendría OutOfMemoryError? ¿Nada en Ehcache que intenta prevenirlo?Ehcache bajo comportamiento de memoria

Respuesta

1

Tiene razón porque si desea crear un OOM con ehcache puede hacerlo. ¿Has echado un vistazo a las opciones de tamaño, aunque como maxEntriesLocalHeap/maxBytesLocalHeap? Utilizando estos, puede evitar que las memorias caché usen más de una cantidad de memoria asignada.

Véase, por ejemplo http://ehcache.org/documentation/configuration/cache-size

+0

gracias, de hecho, tenía la impresión de que en las últimas versiones de Ehcache uno puede limitar explícitamente el consumo de memoria. Pero mi pregunta era sobre Ehcache 1.2.3, ya que esto es lo que se usa en el sistema en el que estoy trabajando. Y, de nuevo, actualmente mi impresión (no respaldada por un experimento) es que, de hecho, si la memoria caché se vuelve demasiado grande en términos de memoria utilizada (a diferencia de la cantidad de elementos utilizados), Ehcache 1.2.3 no intentará desalojar las entradas a limitar el consumo de memoria. –

Cuestiones relacionadas