java - 2gb - CMSPermGenSweepingEnabled vs CMSClassUnloadingEnabled
optifine jvm arguments (1)
He hecho esta pregunta antes - ¿Qué hace JVM marcar CMSClassUnloadingEnabled en realidad? , ¡pero esta vez es un poco diferente!
Si inicio una máquina virtual Java con el -XX:+CMSPermGenSweepingEnabled establecido, se imprime el siguiente mensaje:
Utilice CMSClassUnloadingEnabled en lugar de CMSPermGenSweepingEnabled en el futuro
El -XX:+CMSPermGenSweepingEnabled se usa a menudo para mitigar los errores de PermGen OutOfMemory , sin embargo, he leído en otro lugar que las personas han encontrado que al seguir los consejos anteriores todavía han tenido estos errores, pero al quedarse con -XX:+CMSPermGenSweepingEnabled también as -XX:+CMSClassUnloadingEnabled su VM se ha mantenido -XX:+CMSClassUnloadingEnabled durante más tiempo entre reinicios.
¿ -XX:+CMSClassUnloadingEnabled realmente reemplaza a -XX:+CMSPermGenSweepingEnabled o todavía hay algún beneficio en tenerlos a ambos?
Gracias por adelantado
Rich ps: Sé que la causa raíz de los problemas de perm gen sigue siendo por lo general fugas de Classloader, se trata más sobre el mensaje que produce la JVM si usamos las opciones anteriores.
Por lo que puedo decir, lo único que hace la 1.6 JVM con CMSPermGenSweepingEnabled es imprimir ese mensaje, no se procesa tal como está en 1.5. Para que CMSClassUnloadingEnabled tenga algún impacto, UseConcMarkSweepGC también debe configurarse.