1. serial:
-XX:+UseSerialGCBesonders sinnvoll
- bei einer CPU
- nicht speicherlastigen Anwendungen
2. throughput collector:
-XX:+UseParallelGCVerwendet mehrere Threads für die Minor GC. Schlechtere Performance bei 1 CPU, gleiche Performance bei 2 CPUs wie seriell, bessere Performance ab 3 CPUs zu erwarten. (Die Anzahl der Threads kann über -XX:ParallelGCThreads=[anzahl] gesteuert werden).
Besonders sinnvoll
- wenn es auf Leistung ankommt (CPU-lastige Anwendungen)
JMX: PS Scavenge (2 Gen) und PS MarkSweep (4 Gen)
3. concurrent low pause collector:
-XX:+UseConcMarkSweepGCVersucht große Teile der Major GC parallel mit den Applikations-Threads zu machen. Braucht dadurch etwas mehr CPU. Sinnvoll ab 2 CPUs.
Besonders sinnvoll
- wenn es auf kurze Stopzeiten durch den GC ankommt.
- wenn viele Daten lang im Speicher gehalten werden (z.B. Katalogdaten, Caches, etc.)
Anmerkung: Die Sun VM kann den GarbageCollector dynamisch ändern, wenn nichts explizit angegeben wird.
Links mit Detailinfos:
Alle VM Options der Sun VM
GC Tuning Java SE 5
GC Tuning Java SE 6
Keine Kommentare:
Kommentar veröffentlichen