티스토리 뷰
한 줄 요약
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 |
---|
댓글