ReservedCodeCacheSize
(y InitialCodeCacheSize
) es una opción para el compilador (just-in-time) de la máquina virtual Java HotSpot. Básicamente, establece el tamaño máximo para el caché de código del compilador.
La memoria caché puede llegar a ser completa, lo que da lugar a advertencias como las siguientes:
Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled.
Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize=
Code Cache [0x000000010958f000, 0x000000010c52f000, 0x000000010c58f000)
total_blobs=15406 nmethods=14989 adapters=362 free_code_cache=835Kb largest_free_block=449792
Es mucho peor cuando es seguida por Java HotSpot(TM) Client VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGINT to handler- the VM may need to be forcibly terminated
.
¿Cuándo establecer esta opción?
- al tener fallos hotspot compilador
- para reducir la memoria necesaria por la JVM (y por tanto con riesgo de fallos del compilador JIT)
Normalmente no cambiaría este valor. Creo que los valores predeterminados son bastante buenos porque estos problemas ocurren solo en muy raras ocasiones (en mi experiencia).
El OP de esta publicación escribió:> -XX: ReservedCodeCacheSize = 32m Tamaño de caché de código reservado (en bytes) - tamaño máximo de caché de código. [Solaris 64-bit, amd64 y -server x86: 48m; en 1.5.0_06 y anteriores, Solaris de 64 bits yy64: 1024m.] Solo quiero corregir que el límite superior mencionado a 48 m debe ser un error tipográfico. Son 2048m. –