Jakie są najlepsze ustawienia zbierania śmieci po stronie klienta?

Ostatnie JVM mają wiele parametrów XX do zbierania śmieci (patrztutaj na przykład), ale jakie są opcje, dzięki którym aplikacja Swing po stronie klienta naprawdę działa lepiej?

Powinienem zauważyć, że jedną z rzeczy, która naprawdę denerwuje mnie w aplikacjach Java po stronie klienta, jest duże opóźnienie w usuwaniu śmieci ze świata zatrzymania. W Intelli-J IDEA widziałem to trzy minuty lub dłużej.

EDIT: Dzięki za wszystkie odpowiedzi. Aby złożyć raport, umieściłem CMS garbage collector dla IDEA (co jest dobrym typowym odniesieniem do rodzaju aplikacji, z którą większość osób czytających to pytanie jest zaznajomionych) używając sugerowanego ustawieniatutaj. Ustawiłem również -XX: + StringCache, aby sprawdzić, czy zmniejszy to wymagania dotyczące pamięci.

Ogólnie rzecz biorąc, obserwacja jest taka, że ​​regularna wydajność pracy nie jest obniżona do punktu, w którym można zauważyć na nią patrzenie. Redukcja pamięci jestolbrzymi przy użyciu opcji String Cache, jednak metoda CMS nie jest dokładna i kończy się koniecznością zatrzymania światowego cyklu usuwania śmieci (powrót do trzy minuty oczekiwania), aby wyczyścić pamięć (400 MB w jednym przebiegu).

Jednakże, biorąc pod uwagę zmniejszoną ilość miejsca w pamięci, być może uda mi się po prostu umieścić mniejszą maksymalną ilość pamięci, która zatrzyma kolekcje świata w mniejszych rozmiarach.

IDEA 8.1.4 jest dostarczana z JDK 1.6.0_12, więc nie testowałem jeszcze G1. Ponadto mój komputer ma tylko 2 rdzenie, więc podejście G1 nie będzie tak naprawdę zmaksymalizowane. Czas uderzyć szefa w lepszą maszynę;).

questionAnswers(5)

yourAnswerToTheQuestion