Qual è il GC predefinito utilizzato in Java 1.7 (45) su Linux


La nostra JVM è HotSpot-Server a 64 bit (modalità mista) su Linux.

Guardando i registri GC sembra che ParallelGC sia l'impostazione predefinita. Perché CMS non è il GC algo predefinito? È dovuto alla mancanza di compattazione? Ma sarebbe il caso anche di parallelGC.

Notiamo che un FullGC non viene attivato anche quando l'heap raggiunge il 75% di capacità. Quando viene attivato un GC completo per il GC predefinito in java 1.7?

Author: aadidasu, 2014-05-07

1 answers

Guardando i registri GC sembra che ParallelGC sia l'impostazione predefinita.

È stato da quando è stato aggiunto.

Perché CMS non è il GC algo predefinito?

ParallelGC è il più veloce per il throughput, il più basso utilizzo della CPU e il più facile da usare.

È dovuto alla mancanza di compattazione?

Questo è un problema.

Ma questo sarebbe il caso anche di parallelGC.

Non è un problema per questo GC in quanto deframmentare.

Notiamo che un FullGC non viene attivato anche quando l'heap raggiunge il 75% della capacità. Quando viene attivato un GC completo per il GC predefinito in java 1.7?

Quando la JVM non è in grado di allocare memoria, anche se CMS è abilitato. (O quando il sistema.gc () lo attiva per fare una raccolta completa) CMS attiva solo una raccolta principale dello spazio di ruolo quando viene eseguito. Non c'è CMS per FullGC.

 5
Author: Peter Lawrey, 2014-05-07 17:37:18