티스토리 뷰

한 줄 요약


V8? Javascript 코드를 Ignition이라는 인터프리터와 Turbofan이라는 컴파일러를 통해 JIT 컴파일을 수행하는 Javascript 오픈소스 엔진이다.

 

 

V8이란?


  • 구글이 개발한 Javascript 엔진이다.
  • C++로 작성되었고, Nodejs, 크로미움 웹 브라우저 등을 지원한다.
  • JIT(Just In Time) 컴파일러로, 프로그램을 실행하기 위한 바이트 코드를 생성한다.
  • Ignition 인터프리터와, Turbofan 컴파일러를 사용한다.

 

 

V8의 구조 및 Javscript 코드의 컴파일 순서


nodejs로 예를 들자면, 자바스크립트 코드는 아래 그림과 같은 절차로 컴파일 된다.

 

1. Parsing : 아래와 같이 JS 코드를 파싱하고(구문 분석) AST로 바꾼다.

const a = "Hello"

 

2. Ignition : 자바스크립트를 바이트 코드로 변환하는 인터프리터이다. 정확하게 말하자면 JS 코드가 파싱되어 나온 AST를 입력으로 받아 Byte Code를 출력한다. 컴파일러가 아닌 인터프리터를 사용하는 이유는, 메모리 관리 차원에서 효과적이기 때문

 

3. Turbofan : Byte Code를 Optimized Machine Code로 변환하는 컴파일러이다. Byte Code를 분석해 빈도 등을 이용해 최적화 시켜 메모리 사용량을 줄이고 성능을 향상시킨다.

 

4. 실행

 

 

 

 

 

 

 

 

끝.

 

'node' 카테고리의 다른 글

[Node.js] Libuv란? 특징과 구성요소  (0) 2023.02.20
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함