Używam ehcache 1.2.3. Ponieważ rozmiar pamięci podręcznej jest określany w kategoriach "elementów", pamięć podręczna, którą zajmuje pamięć podręczna, może być bardzo różna (ehcache jest używane razem z hibernacją i przechowuje również standardową pamięć podręczną zapytań, w której zapytania zwracają zestawy wyników o rozmiarze , które mogą się różnić). Moje pytanie brzmi: co się stanie, jeśli JVM zacznie tracić pamięć. Moje wrażenie z czytania dziennika zmian ehcache polega na tym, że początkowo korzystał z miękkich odniesień , ale ponieważ java 1.4 czyścił je agresywnie, miękkie referencje zostały w końcu usunięte. Zatem jeśli pamięć podręczna stanie się zbyt duża, po prostu dostanę OutOfMemoryError? Nic w Ehcache, który próbuje temu zapobiec?Zachowanie niskiej pamięci Ehcache
5
A
Odpowiedz
1
Masz rację, jeśli chcesz stworzyć OOM z ehcache, możesz to zrobić. Czy spojrzałeś na opcje zmiany rozmiaru, ale jak maxEntriesLocalHeap/maxBytesLocalHeap. Korzystając z nich, można skutecznie zapobiegać używaniu pamięci podręcznych ponad przydzieloną ilość pamięci.
Patrz np http://ehcache.org/documentation/configuration/cache-size
dziękuję, rzeczywiście miałem wrażenie, że w ostatnich wersjach ehcache jednego może wyraźnie ograniczyć zużycie pamięci. Ale moje pytanie dotyczyło Ehcache 1.2.3, ponieważ to jest to, co jest używane w systemie, nad którym pracuję. I znowu, obecnie moje wrażenie (nie poparte eksperymentem) polega na tym, że jeśli pamięć podręczna staje się zbyt duża pod względem użytej pamięci (w przeciwieństwie do liczby użytych elementów), Ehcache 1.2.3 nie będzie próbował eksmitować wpisów do ogranicz zużycie pamięci. –