美文网首页
机器码示例

机器码示例

作者: 7d972d5e05e8 | 来源:发表于2020-02-09 23:08 被阅读0次

    JVM语言无关性的基础是编译器--不同语言,通过不同的编译器,都编译为字节码。
    JVM平台无关性的基础是JVM--相同字节码,通过不同的JVM,在不同平台上解释执行。

    https://www.cnblogs.com/guocai/archive/2012/10/18/2730048.html

    机器码顾名思义就是机器能够读懂的代码,人不太可读的代码。既然机器能读懂,那么不同机器,必然只能读懂它自己的代码。所以,机器码和机器硬件即cpu是强相关性的。比如intel和AMD,相同一段高级编程语言,最终生成的可执行机器码就会不一样。

    方法内联:

    java JIT编译,会进行方法内联优化。比如方法foo1调用了foo2,foo2调用了foo3,由于foo2执行的频率较高,所以,foo2被内联到foo1里面。那么调用foo1后,就不用在调用foo2了,foo2的实现被写到foo1里面了。方法内联,可以保证完整功能同时,减少方法的调用次数。

    一、方法内联

    方法内联 指的是在即时编译过程中遇到方法调用时,直接编译目标方法的方法体,并替换原方法调用。
    注:

    1. 方法内联属于即时编译期的优化技术;
    2. 即时编译的过程是字节码被解析成LTR图,优化LTR图,再由优化过的IR图生成机器码的过程;字节码 -> 高级中间代码(HIR) -> 低级中间代码(LTR) -> 机器码。如下图。
    3. 解析指的是即时编译器对字节码做的动作,是字节码到IR图的转换;


      即时编译器过程.png

    相关文章

      网友评论

          本文标题:机器码示例

          本文链接:https://www.haomeiwen.com/subject/ezkjnctx.html