- Today
- Total
프로그래밍 농장
AOT(ahead-of-time compile) 와 JIT(Just-in-time) 의 개념 본문
최근 이더리움기반 Nethereum sdk를 사용하여 프로젝트를 진행하는 과정에서 AOT에서 해당 프로젝트 sample을 구동시키려면 특정 dll사용 ~등의 조건이 필요하다는 구문을 보아서 간단하게 정리해봤다.
이떄 AOT란, 'ahead-of-time compile' 의 약자로서 목표 시스템의 기계어와 무관하게 중간 언어형태로 배포 된 후 목표 시스템에서 인터프리터나 JIT 컴파일 등 기계어 변역을 통해 실행되는 중간 언어를 미리 목표 시스템에 맞는 기계어로 번역하는 방식을 뜻한다.
조금더 직관적으로 설명하자면,
AOT(Ahead-of-time) : 소스 코드를 미리 컴파일하는 방식 / 설치 시점에 기계어로 번역
: 미리 컴파일을 해놓기 때문에 속도가 상대적으로 빠르다.
: 미리 컴파일을 해놓기 떄문에 설치속도나 설치용량이 큰편이다.
: CPU 사용량이 상대적으로 낮다.
: C / C++ 에서 사용
이와 대비되는 개념인 JIT의 경우 아래와 같은 특징이 있다.
JIT(Just-in-time) : 브라우저에서 파일들을 다운로드 한 뒤에 한번 컴파일해서 브라우저 엔진이 실행할 수 있는 저수준 언어로 바꿔준 후, 화면을 렌더링 하는 방식
: 실행 시점에서 bytecode를 기계어로 번역
: 소스코드가 서버에서 컴파일 되는것이 아닌 사용자의 브라우저에서 컴파일 되는 방식이기에, 실행속도가 상대적으로 느리다.
: CPU 사용량이 AOT에 비해 높다
: 브라우저에서 여러 에러들을 발생시키고 확인할수있다. ( 디버깅 가능 )
: Java ( JVM ) / C# ( CLR ) / Python ( CPython )
'캡스톤 디자인' 카테고리의 다른 글
캡스톤 디자인 결과 (Play-to-Donate) (1) | 2022.07.17 |
---|---|
Infura (=Cloudflare (0) | 2022.03.28 |
What is Mocha ? (0) | 2022.03.28 |
How does the Ethereum network work? (2) About Transaction (0) | 2022.03.20 |
How does the Ethereum network work? (0) | 2022.03.20 |