`
berdy
  • 浏览: 509286 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JAVA中的即时编译

阅读更多
    众所周知,java的跨平台特性是java一个非常重要的特性。与静态语言不同,java的源码先被编译成一个可移植发字节码,
然后在特定的平台上再被编译成特定的机器指令。那么,一段java代码从代码到机器上的可执行的指令,这中间究竟做了哪些
操作呢。

    首先,我们得用javac把源代码编译成平台无关的字节码,这个过程中javac基本不做什么优化。也就是我们常说的.class
文件。然后利用java命令启动java虚拟机,装载需要的class文件,将class文件中的字节码编译成特定环境的机器指令。怎么
把字节码编译成特定环境的字节码。这个在java虚拟机里有两种不同的实现方式:

1、Hotspot动态编译

    Hotspot的执行过程中组合了编译、性能分析以及动态编译。它并没有把所有要执行的代码全部都转化为机器码。只是编译
了“热门”代码(也就是执行最频繁的代码)。它会事先搜集性能分析数据,决定哪段代码执行足够频繁。然后编译该段代码,
这样就不必把时间浪费在编译哪些不经常执行的代码上了(这些代码可以在将要执行前编译)。从而编译器可以有更多的时间来
优化热门代码路径了。
    Hotspot中提供了两个编译器,client版和server版的。默认采用client版的。可以在启动时指定-server参数来启动server
版的编译器。Server版针对最大峰值操作速度进行了优化,适用于需要长期运行的服务器应用程序。client版的优化目标,是减
少应用程序的启动时间和内存消耗,优化的复杂程度远远低于服务器编译器,因此需要的编译时间也更少。

2、JIT 即时编译

    JIT是相对而言的,它不会先编译代码,只是在确定某个代码路径即将被执行时才编译。这样做的好处是可以加快java程序的
启动速度。因为在开始执行之前不需要冗长的编译了。同样的,象硬币的两面,JIT也有它天性的缺陷,没有足够的的时间来执行
编译优化了。在代码的执行效率上就相对要差些。

分享到:
评论

相关推荐

    JavaDecompiler反编译

    JD-GUI是一个独立图形界面的Java源代码“.class”文件反编译工具。您可以浏览重建的源代码,JD-GUI的即时访问方法和字段

    JAVA反编译工具

    JD-GUI是一个独立图形界面的Java源代码“.class”文件反编译工具。您可以使用JD-GUI浏览和重建源代码的即时访问方法和字段

    Java反编译工具-JD-GUI

    JD-GUI是一个独立图形界面的Java源代码“.class”文件反编译工具。可以使用JD-GUI浏览和重建源代码的即时访问方法和字段,以代码高度方式来显示反编译过来的代码。

    深入JVM即时编译器JIT,优化Java编译

    说到编译,我猜你一定会想到 .java 文件被编译成 .class 文件的过程,这个编译我们一般称为前端编译。Java 的编译和运行过程非常复杂,除了前端编译,还有运行时编译。由于机器无法直接运行 Java 生成的字节码,所以...

    java反编译工具

    JD-GUI是一个独立图形界面的Java源代码“.class”文件反编译工具。您可以浏览重建的源代码,JD-GUI的即时访问方法和字段。 JD-GUI是免费的非商业用途。这意味着,JD-GUI不得包含或嵌入到商业软件产品。不过,这个...

    java反编译

    是一个独立的图形实用程序,可显示“.class”文件的Java源代码。您可以使用JD-GUI浏览重建的源代码,以便即时访问方法和字段

    21丨深入JVM即时编译器JIT,优化Java编译.html

    21丨深入JVM即时编译器JIT,优化Java编译.html

    JD-GUI(Java反编译工具)

    JD-GUI是一个独立图形界面的Java源代码“.class”文件反编译工具。您可以浏览重建的源代码,JD-GUI的即时访问方法和字段。 JD-GUI 是一个独立的显示“.class” 文件Java源代码的图形用户界面工具。您可以使用JD-GUI...

    Java反编译工具 jd-gui-windows-1.6.6

    “Java Decompiler项目”旨在开发工具,以便反编译和分析Java 5“字节代码”和更高版本。 JD-Core是一个从一个或多个“.class”文件重构Java源代码的库。 JD-Core可用于恢复丢失的源代码并探索Java运行时库的源代码...

    JAVA反编译

    JD-GUI是一个独立图形界面的Java源代码“.class”文件反编译工具。您可以浏览重建的源代码,JD-GUI的即时访问方法和字段。 JD-GUI是免费的非商业用途。这意味着,JD-GUI不得包含或嵌入到商业软件产品。不过,这个...

    编译原理实验--词法分析(java)

    简单模拟编译原理中的词法分析过程。对于一个程序,即时识别出其中的关键字,标识符,常量,运算符(三目运算符除外),以及自定义的类型。

    java 反编译工具 反编译.rar

    JD-GUI是一个独立图形界面的Java源代码”.class”文件反编译工具。您可以浏览重建的源代码,JD-GUI的即时访问方法和字段

    java反编译软件新

    独立图形界面的Java源代码“.class”文件反编译工具。您可以浏览重建的源代码,JD-GUI的即时访问方法和字段。

    java 反编译工具 JD-GUI

    java反编译工具 JD-GUI是一个独立图形界面的Java源代码“.class”文件反编译工具。您可以浏览重建的源代码,JD-GUI的即时访问方法和字段。

    java 反编译工具

    JD-GUI 是一个独立的显示“.class” 文件Java源...您可以使用JD-GUI浏览和重建源代码的即时访问方法和字段,以代码高度方式来显示反编译过来的代码。 用法: 打开jd_gui,然后将jar包拖放到主界面,就可以看到源代码了。

    jd-gui.zip java文件反编译软件

    JD-GUI中文版是一个用于Java编程语言源代码“.class”文件反编译软件。您可以使用JD-GUI中文版浏览和重建源代码的即时访问方法和字段,以代码高度方式来显示反编译过来的代码。

    java反编译工具.zip

    java反编译工具;分析源代码;JD-GUI是一个独立图形界面的Java源代码“.class”文件反编译工具。您可以浏览重建的源代码,JD-GUI的即时访问方法和字段。

    11丨即时编译:高性能JVM的核心秘密1

    在第 6 节课至第 8 节课中所讲的 C++ 静态编译相比,JIT 最大的特点是在程序运行时进行编译。11 | 即时编译:高性能JVM的核心秘密这种编译方式相对

Global site tag (gtag.js) - Google Analytics