标签:观察 即时编译 字节 热点代码 codec jin jdk use 执行
https://juejin.im/post/5c890f21f265da2d993dc692
CodeCache是热点代码的暂存区,经过即时编译器编译的代码会放在这里,它存在于堆外内存。
JVM内部会先尝试解释执行Java字节码,当方法调用或循环回边达到一定次数时,会触发即时编译,将Java字节码编译成本地机器码以提高执行效率。这个编译的本地机器码是缓存在CodeCache中的,如果有大量的代码触发了即时编译,而且没有及时GC的话,CodeCache就会被填满。
一旦CodeCache被填满,已经被编译的代码还会以本地代码方式执行,但后面没有编译的代码只能以解释执行的方式运行。
通过第2小节的比较,可以清晰看出解释执行和编译执行的性能差异。所以对于大多数应用来说,这种情况的出现是灾难性的。
标签:观察 即时编译 字节 热点代码 codec jin jdk use 执行
原文地址:https://www.cnblogs.com/gaoquanquan/p/10936398.html