Moja aplikacja java utrzymuje wewnętrzną pamięć podręczną, która może dorastać do 10 koncertów. Zasady wygaśnięcia są ustawione na 30 minut lub gdy osiągnięty zostanie próg pamięci (używam lokalnego ehcache). Jest oczywiste, że po 30 minutach cały buforowany obiekt znajdzie się w starym genach i będzie wymagał pełnego gc do ich zebrania. Jak na razie przerwa na zatrzymanie świata może osiągnąć 6 sekund i chciałbym ją zmniejszyć.Jak zoptymalizować gc Java dla długich obiektów życia
Średnia wielkość obiektu to 500 tys., Ale może wzrosnąć do 1 megapiksela, więc mówimy o 10000-20000 buforowanych obiektach (w rzeczywistości tablicach bajtów).
Jaka jest najlepsza strategia optymalizacji GC? Wiem, że mogę się wysadzić, ale jest to rozwiązanie ostateczne.
Dziękujemy!
Napisz własny kod pamięci podręcznej vs używając słabego schematu opartego na referencjach. –
Co masz na myśli? jeśli żyje w sterty, nadal będzie podlegać pełnej GC. – Alex
Zależy dokładnie od tego, co robisz. Możesz ponownie użyć głównej struktury, a nawet ponownie użyć tablic bajtów, a nie tworzyć nowe. –