ReservedCodeCacheSize
(và InitialCodeCacheSize
) là một tùy chọn cho trình biên dịch (chỉ trong thời gian) của Java Hotspot VM. Về cơ bản, nó đặt kích thước tối đa cho bộ đệm mã của trình biên dịch.
Bộ nhớ đệm có thể đầy, dẫn đến các cảnh báo như sau:
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
Nó tồi tệ hơn nhiều khi theo sau Java HotSpot(TM) Client VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGINT to handler- the VM may need to be forcibly terminated
.
Khi nào đặt tùy chọn này?
- khi gặp lỗi trình biên dịch Hotspot
- để giảm bộ nhớ cần thiết của JVM (và do đó có nguy cơ gây ra lỗi trình biên dịch JIT)
Thông thường bạn sẽ không thay đổi giá trị này. Tôi nghĩ rằng các giá trị mặc định được cân bằng khá tốt vì vấn đề này chỉ xảy ra trong những trường hợp rất hiếm hoi (theo kinh nghiệm của tôi).