프로그래밍 농장

AOT(ahead-of-time compile) 와 JIT(Just-in-time) 의 개념 본문

캡스톤 디자인

AOT(ahead-of-time compile) 와 JIT(Just-in-time) 의 개념

Tennessee201 2022. 3. 29.
728x90

최근 이더리움기반 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 )

 

 

728x90

'캡스톤 디자인' 카테고리의 다른 글

캡스톤 디자인 결과 (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