V8 엔진은 어떻게 코드를 실행하나?

NavDevJae·2021년 6월 15일
0

INTERVIEW PREPARATION

목록 보기
3/15

V8 엔진 정의

  • 구글이 주도하여 C++로 작성된 고성능 JS 및 Web Assembly Engine이다.
  • Google Chorme 및 NodeJS에서 사용한다.

V8 엔진 작동원리

V8이 JS 소스 코드를 어떻게 해석하고 실행하나?

  • V8은 소스 코드를 가져와서 Parser에게 넘긴다.
  • 소스 코드를 분석하고 난 후, AST (Abstract Syntax Tree)로 변환한다.(파싱과정)
  • Ignition에게 넘긴다.
    • Ignition의 특징
      • 컴퓨터가 해석하기 쉬운 바이트 코드로 변환한다. (메모리 공간 아낄 수 있다.)
      • 모든 소스를 한 번에 해석하는 Compile 방식이 아닌 코드 한줄 한줄 실행될 때마다 해석하는 Interpreter 방식 사용한다.
    • Ignition 장점
      • 메모리 사용량 감소 : 바이트 코드로 컴파일링 하기 때문에
      • 파싱 시 오버헤드 감소 : 다시 파싱하기도 용이하다.
      • 컴파일 파이프 라인 복잡성 감소 : 바이트 코드 하나만 고려하면 된다.
  • 소스 코드가 실제로 작동하게 되고, 자주 사용되는 코드는 TurboFan으로 보내져 최적화된 코드 (Optimized Machine Code)로 다시 컴파일된다.
  • 사용이 덜 된다 싶으면 Deoptimizing을 한다.

참조 사이트 링크

profile
전직 항해사 출신 미래 개발자

0개의 댓글