Cha*_*ani 8 java compiler-construction jit jvm jvm-hotspot
我听说这些术语正在使用,但我似乎无法在Java框架中找到它们在一起的最佳位置.我知道JIT是一个编译机制,但它是JVM的一部分吗?什么是热点?它是一种新型VM吗?
Wil*_*ung 11
JIT是"及时"编译,基本上是动态编译.
Hotspot是JVM中的概念,它只编译实际使用的代码.也就是说,反复使用的"热"代码片段.
JVM跟踪使用情况,当某些东西变得足够流行时,它会将该代码排队等待编译,同时继续解释代码.
当JIT完成时,它用编译的位交换解释的位.
这就是为什么JVM需要"热身"以进行基准测试等.
Sun/Oracle JVM的-server和-client选项会影响这种行为,即它们在执行JIT工作时的积极程度.
Kri*_*ris 11
JVM是一个规范.不同的供应商实施规范.例如:Sun(现在的Oracle),IBM,BEA(现在的Oracle),SAP都实现了规范并提供了自己的JVM.Sun的具体实现称为Hotspot.BEA被称为JRockit.
JIT是JVM的一部分,它接受Java字节码并将其编译为运行程序的机器上的本机处理器汇编代码.每个供应商都使用独特的复杂算法实现JIT.例如:JRockit上的JIT与Hotspot的JIT不同.
小智 8
HotSpot是特定JVM的名称.它具有JIT编译器,就像今天的大多数JVM一样,但是JVM是否具有JVM编译器是一个(相当广泛,公开宣传且重要,但仍然是)实现细节.有没有JIT编译器的Java实现,它们就像标准编译一样.
"热点"也是一段经常被调用的代码或者需要不成比例地执行的代码(这可能是JVM得名的地方,就像许多JIT一样 - 旨在加速那些"热点"特别是).