【问题标题】:Java JITC native code generation/execution example?Java JITC 本机代码生成/执行示例?
【发布时间】:2012-11-18 03:18:29
【问题描述】:

我试图了解 Java JITC 的“本机代码生成和执行”部分,但很难准确地看到发生了什么。例如。说我有以下课程:

class Foo
{
    private int x;
    public void incX()
    {
        x++;
    }
}

javac 为方法生成以下字节码:

public void incX();
Code:
Stack=3, Locals=1, Args_size=1
0:   aload_0
1:   dup
2:   getfield        #17; //Field x:I
5:   iconst_1
6:   iadd
7:   putfield        #17; //Field x:I
10:  return
LineNumberTable:
line 33: 0
line 34: 10

LocalVariableTable:
Start  Length  Slot  Name   Signature
0      11      0    this       LFoo;

当 JITC 将其转换为本机代码时,究竟会发生什么? JVM 是如何执行本机代码的?

【问题讨论】:

    标签: java jit native-code


    【解决方案1】:

    当方法被足够频繁地调用以超过 JVM 的编译阈值时,JIT 会将字节码编译为本机代码,并对其进行设置,以便对函数的调用直接转到本机编译的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多