둘러보기 메뉴
검색
바뀐글
임의글
개인 도구
가입하기
로그인
도움말
도움말
질문게시판
자주 묻는 질문
커뮤니티
실시간 채팅방
가입인사게시판
자유게시판
뉴스게시판
제재안게시판
최근 토론
페미위키
공지사항
개선 요청
바뀐글
임의글
파일 올리기
다면 분류 목록
특수 문서 목록
Just-in-time 컴파일 문서 원본 보기
이름공간
문서
토론
주시
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
위키베이스 항목
행위
보기
읽기
원본 보기
역사 보기
←
Just-in-time 컴파일
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요.
요청한 명령은 다음 중 하나의 권한을 가진 사용자에게 제한됩니다:
사용자
,
Seeders
.
문서를 고치려면 이메일 인증 절차가 필요합니다.
사용자 환경 설정
에서 이메일 주소를 입력하고 이메일 주소 인증을 해주시기 바랍니다.
문서의 원본을 보거나 복사할 수 있습니다.
Just-in-time compilation, 줄여서 JIT 컴파일이라고 부른다. 동적 번역(dynamic translation)이라고도 하며, 이 방식을 구현한 [[프로그래밍 언어]] 구현체도 흔히 JIT 컴파일러라고 일컫는다. 프로그래밍 언어 구현 방법의 하나로, 주로 [[인터프리터]]의 성능을 개선하기 위한 방법이다. [[인터프리터]] 구현으로 실행하는 프로그램은 실행 중에 프로그램 코드를 해석하면서 진행하기 때문에, [[컴파일러]] 구현으로 한 번에 번역한 프로그램을 실행하는 것보다 실행 속도가 느려지는 단점이 있다. 이 단점은 루프와 같이 같은 코드를 반복적으로 실행할 때 특히 두드러지는데, 심한 경우에는 루프를 돌 때마다 매번 문법 트리 파싱부터 새로 하는 대삽질을 벌일 수도 있다. 따라서 언어 구현자들은 반복적으로 도는 코드만 골라서 최적화를 하면 어떨까 하는 발상을 떠올렸고, 그걸 구현한 것이 JIT 컴파일이다. JIT 컴파일러는 보통의 인터프리팅 과정을 수행하면서, 실행하는 코드들의 실행 횟수를 실시간으로 프로파일링한다. 그리고 특별히 많이 실행된다 싶은 코드가 발견되면 해당 코드를 "즉시(just in time)" 기계어 코드로 컴파일한다. 지금까지 많이 실행됐던 코드들은 앞으로도 많이 실행될 가능성이 높기에, 다음부터 그 부분을 실행할 때는 훨씬 빠른 기계어 코드를 대신 실행할 수 있게 된다. === 주요 구현체 === * [[Java]]의 HotSpot VM * [[안드로이드 (운영체제)|안드로이드]]의 [[ART]](Android RunTime) * [[.NET]]의 .NET Common Language Runtime (CLR) * [[Python]]의 [[PyPy]] * [[Lua]]의 [[LuaJIT]] * [[JavaScript]]의 주요 구현들: [[V8]], [[스파이더몽키|SpiderMonkey]], JavaScriptCore [[분류:컴퓨터 프로그래밍]]
Just-in-time 컴파일
문서로 돌아갑니다.
다른 언어