Segmented code cache [JEP 197]
The segmented code cache JEP (197) upgrade was completed and results in faster, more efficient execution time. At the core of this change was the segmentation of the code cache into three distinct segments--non-method, profiled, and non-profiled code.
Note
A code cache is the area of memory where the Java Virtual Machine stores generated native code.
Each of the aforementioned code cache segments will hold a specific type of compiled code. As you can see in the following diagram, the code heap areas are segmented by type of compiled code:
Memory allocation
The code heap containing non-method code is for JVM internal code and consists of a 3 MB fixed memory block. The rest of the code cache memory is equally allocated for the profiled code and non-profiled code segments. You have control of this via command-line commands. The following command can be used to define the code heap size for the non-method compiled code:
-XX:NonMethodCodeCodeHeapSize
The following command...