2012-06-15 16 views
5

Sto usando ehcache 1.2.3. Poiché la dimensione della cache è specificata in termini di "elementi", la memoria occupata dalla cache può variare notevolmente (l'ehcache viene utilizzata insieme allo ibernazione e contiene anche la cache di query standard in cui le query restituiscono i gruppi di risultati che possono variare). La mia domanda è: cosa succede se JVM ha poca memoria. La mia impressione dalla lettura del log delle modifiche di ehcache è che inizialmente utilizzava i riferimenti soft , ma dal momento che java 1.4 li puliva in modo aggressivo, i riferimenti software venivano infine eliminati. Quindi se la cache diventa troppo grande, vorrei solo ottenere OutOfMemoryError? Niente in Ehcache che cerca di impedirlo?Comportamento memoria insufficiente Ehcache

risposta

1

Hai ragione nel fatto che se vuoi creare una OOM con ehcache puoi farlo. Hai dato un'occhiata alle opzioni di dimensionamento, anche se come maxEntriesLocalHeap/maxBytesLocalHeap. Usando quelli si può effettivamente impedire alle cache di usare più di una quantità di memoria allocata.

Vedi per esempio http://ehcache.org/documentation/configuration/cache-size

+0

grazie, ho davvero avuto l'impressione che nelle ultime versioni di EHCache si può limitare in modo esplicito il consumo di memoria. Ma la mia domanda riguardava Ehcache 1.2.3, poiché questo è ciò che viene utilizzato nel sistema su cui sto lavorando. E, di nuovo, attualmente la mia impressione (non supportata da un esperimento) è che, in effetti, se la cache diventa troppo grande in termini di memoria utilizzata (in contrapposizione al numero di elementi utilizzati), Ehcache 1.2.3 non tenterà di rimuovere le voci in limitare il consumo di memoria. –

Problemi correlati