我看到这个JEP(http://openjdk.java.net/jeps/197)引入了3种类型的代码缓存。
对我来说最明显的是-XX:NonNMethodCodeHeapSize
,它处理JVM内部数据。
我不明白的是NonProfiledCodeHeapSize
和ProfiledCodeHeapSize
之间的区别是什么。该文件说:
分层编译还引入了一种新的编译代码类型:检测的编译代码(分析的代码)。
我的理解是,这里的“instrumented”意味着“with counters”,因此,假设这真的是C1
编译的代码,而另一个是C2
,这是一种逻辑吗?
1条答案
按热度按时间uwopmtnx1#
在分层编译中,* 已分析的代码 * 表示收集执行统计信息(计数器和类型信息)的JIT编译方法,这些统计信息以后可用于在不同层上重新编译。
请参阅
codeBlob.hpp
: