2012-04-11 4 views
1

자바 JITC의 '네이티브 코드 생성 및 실행'부분을 이해하려고하지만 정확히 어떻게되는지 시각화하는 데 어려움을 겪고 있습니다. 예 : 나는 다음과 같은 클래스가 있다고 가정 :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에서 어떻게 실행됩니까?

답변

0

메소드가 JVM의 컴파일 임계 값을 전달할만큼 자주 호출되면 JIT는 바이트 코드를 원시 코드로 컴파일하고 함수 호출이 원시 컴파일 된 메소드로 직접 이동하도록 설정합니다.