相对于非JIT编译器,JIT编译器具体做什么? 能否简洁易懂地描述一下?
JIT编译器会在程序运行时动态编译字节码为本机代码,从而提高程序的执行效率。而非JIT编译器则会在程序启动时将整个程序的字节码编译为本机代码,这可能会导致启动时间延长。相对于非JIT编译器,JIT编译器具体做什么? 能否简洁易懂地描述一下?
JIT编译器会在程序运行时动态编译字节码为本机代码,从而提高程序的执行效率。而非JIT编译器则会在程序启动时将整个程序的字节码编译为本机代码,这可能会导致启动时间延长。您的代码被编译成一些IL(中间语言)。当您运行程序时,计算机无法理解这段代码。它只能理解本地代码。因此,JIT编译器会即时将您的IL编译成本地代码。它是在方法级别上完成的。
Jit是即时编译器的缩写。jit是一个程序,将Java字节码转换为可直接发送到处理器的指令。
在特定的系统平台上使用Java JIT编译器(实际上是第二个编译器)将字节码编译成特定的系统代码,一旦代码被Jit编译器重新编译,它通常会在计算机上运行得更快。
即时编译器随虚拟机一起提供,并且是可选使用的。它将字节码编译为特定于平台的可执行代码,立即执行。
即时编译器(Just In Time compiler),也称 JIT 编译器,用于提高 Java 的性能。它默认启用,并在执行时进行编译,而不是之前。Java 通过将 JIT 编译器包含在 JVM 中,推广了其使用。
字节码的20%在80%的时间内被使用。JIT编译器获取这些统计数据,并通过添加内联方法、删除未使用的锁等方式来优化这20%的字节码,同时还会创建特定于该机器的字节码。我引用了这篇文章,我觉得它很有用。http://java.dzone.com/articles/just-time-compiler-jit-hotspot