ReservedCodeCacheSize
(i InitialCodeCacheSize
) jest opcją dla (just-in-time) kompilatora Java Hotspot VM. Zasadniczo ustawia maksymalny rozmiar pamięci podręcznej kodu kompilatora.
Pamięć podręczna może się zapełnić, co powoduje ostrzeżeń, jak następuje:
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
Jest znacznie gorzej, gdy następuje Java HotSpot(TM) Client VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGINT to handler- the VM may need to be forcibly terminated
.
Kiedy ustawić tę opcję?
- gdy o awarii Hotspot kompilatora
- zmniejszenie pamięci potrzebnej JVM (a tym samym ryzykując awarie kompilatora JIT)
Zwykle nie chcesz zmienić tę wartość. Myślę, że wartości domyślne są dość dobrze zrównoważone, ponieważ problemy te występują tylko w bardzo rzadkich przypadkach (w moim doświadczeniu).
OP tego wpisu napisał:> -XX: ReservedCodeCacheSize = 32m Zarezerwowany rozmiar pamięci podręcznej kodu (w bajtach) - maksymalny rozmiar pamięci podręcznej kodu. [Solaris 64-bit, amd64 i -server x86: 48m; w wersji 1.5.0_06 i wcześniejszych, Solaris 64-bit i and64: 1024m.] Chcę tylko poprawić, że wspomniany górny limit na 48m musi być literówką. To 2048m. –