ReservedCodeCacheSize
(และInitialCodeCacheSize
) เป็นตัวเลือกสำหรับคอมไพเลอร์ (แบบทันเวลา) ของ Java Hotspot VM โดยทั่วไปจะกำหนดขนาดสูงสุดสำหรับแคชโค้ดของคอมไพเลอร์
แคชอาจเต็มได้ซึ่งส่งผลให้มีคำเตือนดังต่อไปนี้:
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
Java HotSpot(TM) Client VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGINT to handler- the VM may need to be forcibly terminated
มันเลวร้ายมากในขณะที่ตาม
ควรตั้งค่าตัวเลือกนี้เมื่อใด
- เมื่อคอมไพเลอร์ Hotspot ล้มเหลว
- เพื่อลดหน่วยความจำที่ JVM ต้องการ (และด้วยเหตุนี้จึงเสี่ยงต่อความล้มเหลวของคอมไพเลอร์ JIT)
โดยปกติคุณจะไม่เปลี่ยนค่านี้ ฉันคิดว่าค่าเริ่มต้นค่อนข้างสมดุลดีเพราะปัญหานี้เกิดขึ้นในบางครั้งที่หายากมากเท่านั้น (จากประสบการณ์ของฉัน)