• 2022. 1. 4.

    by. 문익점

    반응형

    Javascript 엔진

    Javacript 엔진은 두 가지 유형이 있다. 첫 번째로는 인터프리터이고 두 번째는 Javascript 코드를 바이트 코드로 컴파일하는 just-in-time 컴파일러이다. 이 엔진들로는 대표적인 V8 이 외에도 SpiderMonkey, Chakra등 여러가지가 존재한다.

    JIT(Just-In-Time) Compiler

    우선 컴파일은 무엇일 까? 브라우저에서는 Javascript 를 처리하기 위해서, Javascript 엔진 으로 Javascript 소스 를 내부에서 이해할 수 있는 언어로 변환하고 실행하는데, 이를 컴파일 이 라고 부른다. 즉 Javascript를 기계가 이해하기 위한 기계어로 변환하는 과정이다. V8 에서는 먼저 JavaScript 코드를 인터프리터 방식으로 컴파일 하고, 이를 ByteCode 로 만들어 낸다. 코드를 우선 인터프리터 방식으로 실행하고 필요할 때 컴파일 하는 방법을 JIT(Just-In-Time) 컴파일러

    결론은 Javascript는 실행되는 엔진이 누구냐에따라 인터프리터와 컴파일이 혼합되어 사용된다.

    V8 엔진

    가장 대표적인 자바스크립트 엔진이라면 당연 V8일 것이다 이는 구글이 제작하였고 오픈소스로 공개되어 있다. 크롬 브라우저, Node.js등 사용자가 많은 프로젝트에서 사용된다.

    V8 엔진이 실행할 JS 파일을 받게 된다 엔진은 소스 코드를 파싱하여 AST(Abstract Syntax Tree)를 구축하는 과정을 거친다. AST를 기반으로 *인터프리터는** 바이트코드를 생산한다. 이 떄 바이트코드는 Profiler에게도 전달되어 바이트코드는 최적화 컴파일러로 프로파일링 데이터와 함께 보내지고, 최적화 컴파일러는 *TurboFan을 통해 매우 최적화된 기계 코드를 만들어낸다. 자주 쓰이는 코드를 컴파일하여 최적화된 코드를 만들어낸다.

    *AST 란 소스코드를 트리로 만든 구조체

    *V8의 최적화 컴파일러

    반응형

    '코딩' 카테고리의 다른 글

    WAI-ARIA - 접근성  (0) 2022.02.06
    프로그래머스 - 고양이 사진첩 애플리케이션  (0) 2022.01.12
    리액트 살펴보기 - 정보  (0) 2021.12.29
    리팩터링 2판 리뷰 - 5장 6.5장  (0) 2021.12.28
    리팩터링 2판 리뷰 - 4장  (0) 2021.12.24