JIT 컴파일: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
Tisphie (토론 | 기여)
편집 요약 없음
잔글편집 요약 없음
1번째 줄:
컴퓨터 프로그래밍에서 얘기하는, '''just-in-time compilation''' ('''JIT'''),컴파일 혹은도는 '''동적 번역'''이라고 하는 것은 컴퓨터 프로그램의 실행 속도를 향상 시키는 기법이다.
전통적으로 컴퓨터 프로그램을 만드는(혹은 실행하는) 방법은 두가지가 있는데, 인터프리팅과 [[정적 컴파일이다컴파일]]이다. 인터프리팅은 실행중에 고수준 프로그래밍 언어를 기계어로 번역해서 실행한다. 반면 정적 컴파일은 실행하기 전에 프로그램 코드를 기계어로 번역한다.
 
JIT 컴파일러는 두가지의 혼합형이라고 볼 수 있는데, 인터프리터처럼 실행중에 코드를 번역하지만 번역된 코드를 캐시해서 성능 저하를 최소화한다. JIT는 "[[바이트코드 컴파일]]" 과 "[[동적 컴파일]]"이라는 두가지 아이디어가 주축이 된다. 즉, "실행시"에 바이트코드를 네이티브 코드로 변환한다.
 
JIT는 "바이트코드 컴파일" 과 "동적 컴파일"이라는 두가지 아이디어가 주축이 된다. 즉, "실행시"에 바이트코드를 네이티브 코드로 변환한다.
 
최근엔 마이크로소프트의 닷넷 프레임워크와 자바 가상머신이 실행속도를 향상시키기 위해 JIT 컴파일을 사용한다.
 
==주석==
{{reflist|2}}
 
== 참고 자료 ==
줄 19 ⟶ 12:
== 외부 링크 ==
* [http://www.gnu.org/software/lightning/ GNU ''lightning''] — A library that generates assembly language code at run-time
* {{Freshmeat|libjit|libJIT}} — A library by Rhys Weatherley, Klaus Treichel, Aleksey Demakov, and Kirill Kononenko for development of Just-In-Time compilers in Virtual Machine implementations, Dynamic programming languages and Scripting languages.
*[https://developer.mozilla.org/En/Nanojit Mozilla Nanojit] — A small, cross-platform C++ library that emits machine code. It is used as the JIT for the Mozilla [[Tamarin_%28JavaScript_engine%29|Tamarin]] and [[SpiderMonkey_%28JavaScript_engine%29|SpiderMonkey]] Javascript engines.
*[https://gna.org/projects/softwire/ SoftWire] — A library by Nicolas Capens that generates assembly language code at run-time
*[http://code.google.com/p/asmjit/ AsmJit] — Complete x86/x64 jit assembler library for C++ language by Petr Kobalíček
*[http://homepage1.nifty.com/herumi/soft/xbyak_e.html Xbyak] — A x86/x64 JIT assembler for C++ language by Herumi
*[http://software.intel.com/sites/products/documentation/hpc/vtune/windows/jit_profiling.pdf Profiling Runtime Generated and Interpreted Code using the VTune™ Performance Analyzer]
 
{{DEFAULTSORT:Just-In-Time Compilation}}