JIT: 2개의 글
컴파일 과정 모니터링 JVM의 PrintCompilation 옵션을 활성화시켜서 컴파일 로그를 확인하자 그리고 컴파일 되어야 하는 코드가 예상대로 컴파일 되고 있는지 확인하자 -XX:+PrintCompilation ( default : false ) - 메서드나 루프가 컴파일될 때마다 컴파일된 대상에 대한 정보를 출력한다 컴파일 로그 형식 [timestamp compilation_id attributes (tiered_level) method_name size deopt] - timestamp : JVM 시작시간을 0으로 했을 때, 컴파일이 끝난 시간 - attributes : 컴파일되고 있는 코드의 상태를 기호로 나타낸다. 1) % : OSR 컴파일을 의미 2) s : 메소드가 동기화됨 3) ! : 메..
컴파일러와 인터프리터 인터프리터는 코드를 한줄 읽고 바로 결과를 출력한다. 같은 기능을 하는 코드가 다시 나와도 또 다시 해석하여 결과를 출력한다. 컴파일러는 한번만 소스코드를 컴파일하여 같은 기능을 하는 코드가 있으면 미리 컴파일된 결과를 이용하여 결과를 출력한다. 때문에 한 번만 실행될 코드라면 인터프리터가 더 빠르다. 하지만 많이 실행될 코드라면 컴파일을 하는 것이 좋다. JIT : Just In Time, 그때그때! 핫스팟 JVM의 핵심, 컴파일 방법중 하나 핫스팟이란, 가장 자주실행되는 영역을 의미한다. 가장 자주실행되는 영역만을 컴파일한다고 생각하면 된다. 핫스팟 JVM은 코드를 바로 컴파일하지 않는다. 먼저 인터프리터가 동작하여 코드를 실행한다. 일정시간 동안, 인터프리터가 코드를 해석하며 ..