1 / 5

JIT Compile

JIT Compile. 김진태. JIT Compile 이란 ?. Managed Code (C#, java, managed C++ 등 ) 에서의 성능 향상을 목적으로 둔 컴파일 기법 예 ) JVM JVM 의 일반적인 실행 방식 JIT Compile 방식. Java 를 예로 들면 byte code 를 실행하는 경우 JVM 은 한번에 하나의 byte code 명령어를 번역하여 실행한다 . JIT 방식을 사용하게 되면 호출한 byte code 를 해당 플랫폼에서의 실행 가능한 기계 코드로

Télécharger la présentation

JIT Compile

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JIT Compile 김진태

  2. JIT Compile이란 ? • Managed Code(C#, java, managed C++ 등)에서의 성능 향상을 목적으로 둔 컴파일 기법 • 예) JVM • JVM의 일반적인 실행 방식 • JIT Compile 방식 Java를 예로 들면 byte code를 실행하는 경우 JVM은 한번에 하나의 byte code명령어를 번역하여 실행한다. JIT 방식을 사용하게 되면 호출한 byte code를 해당 플랫폼에서의 실행 가능한 기계 코드로 실행시간에컴파일한 후, 기계 코드를 사용한다. 이것은 기존의 interpreter방식의 단점을 보완한 방법으로 특정 메쏘드를 지속적으로 호출할 때 더 빠른 성능을 보인다.

  3. JIT Compile이란 ? • 실제로 JVM은 JIT Compiler를 포함하고 있지만 • JVM은 interpreter • JIT는 Compiler • 라고 볼 수 있다. • interpreter 방식에서는 byte code 명령어 하나씩 그때 그때 변환하여 실행하지만 • JIT를 사용하면 호출 되는 순간 프로그램의 한 단위를 machine code로 컴파일 해서 메모리에 올려놓고 지속적으로 그 코드를 사용한다. • 하지만 이로 인해 일부 프로그램의 경우 오히려 성능 저하를 가져 올 수 있다. • 반복적인 메소드 호출이 없는 경우에는 지속적인 bytecode->machine code 로의 컴파일이 발생하기 때문에 성능 저하가 발생한다. • 이러한 이유로 JVM에서 JIT는option으로 사용 여부를 선택 할 수 있다. • 이를 보완하기 위한 compile 방식으로 AOT(ahead-of-time) 방식이 있다. • AOT 방식은 실행 전에 미리 컴파일하는 방식으로 성능 향상에 도움이 된다. • 자세한 내용은 위키참조(http://en.wikipedia.org/wiki/AOT_compiler) • ※ .NET Framework의 CLR 역시 JIT 기능을 가지고 있다.

  4. 참조 • http://www.terms.co.kr/JITcompiler.htm • http://www.trl.ibm.com/projects/jit/index_e.htm

  5. 첨부 • Managed Code • 통상 중간언어라 부르기도 한다. • JVM과 CLR에 의해 실행시간에 기계어로 번역되어 실행되는 코드 • 실행 환경을 만들어주면 플랫폼 영향을 덜 받는다는 장점이 있지만 • 인터프리터 머신에 의해 실행시간에 기계어 번역의 오버헤드가 발생하여 성능이 느리다는 단점이 있다. • 이를 보완하기 위한 기술 -> JIT Compile • 예) • byte code • java code를 java compiler에 의해 컴파일되어 나오는 code • IL • C#, basic, managed C++을 .NET Framework Compiler에 의해 컴파일되어 나오는 code

More Related