Java中的执行引擎
Java虚拟机或 JVM 可以可视化为驻留在计算机中的虚拟机,为代码执行提供环境。 Java运行时环境或 JRE 是 JVM 的实现。为了执行代码,使用了执行引擎。在本文中,让我们了解执行引擎和其中的不同组件。
执行引擎是Java虚拟机(JVM)的核心组件。它与 JVM 的各种内存区域进行通信。正在运行的应用程序的每个线程都是虚拟机执行引擎的不同实例。执行引擎通过类加载器执行分配给JVM中运行时数据区域的字节码。 Java Class 文件由执行引擎执行。
执行引擎包含三个用于执行Java类的主要组件。他们是:
- 解释器:它读取字节码并将其解释(转换)为机器码(本机代码)并按顺序执行它们。该组件通过接受文件名参数从命令行运行应用程序。解释器的问题是它每次都解释,甚至多次解释相同的方法,这降低了系统的性能。为了克服这个问题,JIT 编译器在 1.1 版本中被引入。
- JIT 编译器: JIT 编译器抵消了解释器执行速度慢的缺点,提高了性能。
- 在运行时,JVM 加载类文件,确定每个类文件的语义并执行适当的计算。与本机应用程序相比,解释期间额外的处理器和内存使用使Java应用程序的执行速度较慢。
- JIT 编译器通过在运行时将字节码编译为本机代码来帮助提高Java程序的性能。
- JIT 编译器始终处于启用状态,而它在调用方法时被激活。对于编译方法,JVM 直接调用编译后的代码,而不是解释它。从理论上讲,如果编译不需要任何处理器时间或内存使用,则本机编译器的速度和Java编译器的速度将是相同的。
- JIT 编译需要处理器时间和内存使用。 Java虚拟机第一次启动时,会调用上千种方法。编译所有这些方法会显着影响启动时间,即使最终结果是非常好的性能优化。
Profiler:这是一个工具,它是 JIT Compiler 的一部分,负责在 JVM 级别监视Java字节码结构和操作。
- 垃圾收集器:这是Java中的一个自动管理内存的程序。它是一个始终在后台运行的守护线程。这基本上通过销毁无法访问的方法来释放堆内存。
Java Native Interface(JNI): JNI 充当Java方法调用和相应的本地库之间的桥梁(中介)。那是: