compilation - 即时 (JIT) 编译器有什么作用?

标签 compilation compiler-construction jit

与非 JIT 编译器相比,JIT 编译器具体做什么?谁能给个简洁易懂的描述?

最佳答案

JIT 编译器在程序启动后运行,并将代码(通常是字节码或某种 VM 指令)即时(或所谓的即时)编译成通常速度更快的形式,通常是主机 CPU 的 native 指令集。 JIT 可以访问动态运行时信息,而标准编译器则不能,并且可以进行更好的优化,例如频繁使用的内联函数。

这与传统编译器形成对比,后者在程序首次运行之前所有代码编译为机器语言。

换句话说,传统的编译器在您第一次运行它之前将整个程序构建为 EXE 文件。对于较新的程序,程序集是用伪代码(p 代码)生成的。只有在您在操作系统上执行该程序(例如,通过双击其图标)后,(JIT) 编译器才会启动并生成基于 Intel 的处理器或其他处理器能够理解的机器代码(m 代码)。

关于compilation - 即时 (JIT) 编译器有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47714363/

相关文章:

ios - touchIDLockout 在 iOS 11.0 中被弃用

c++ - 弹性和 Bison : C++ user-defined class

c# - 从另一个 DLL 调用一个 DLL

C++ 编译器 : 'class std::vector<std::vector<char>>' has no member named 'emplace_back'

c++ - 错误 :.。 'va_list' 尚未声明

Javascript InfoVis 工具包 : How to specify source/sink for arcs?

python - 为什么 Python 对于一个简单的 for 循环来说这么慢?

Java:如何启用JIT?

c - 即使安装了命令行工具,GCC 也无法在 OS X 中找到 stdio.h

linux - ubuntu 11.04 上的 autoconf 错误