JS ⌳ JavaScript engine

ijuhae·2020년 10월 10일
0

JS

목록 보기
2/2

⌓ 자바스크립트 엔진(JavaScript engine)

⌿ 자바스크립트 코드를 실행하는 프로그램이다.
⌿ 자바스크립트 코드를 마이크로프로세서(CPU)가 이해할 수 있는 저수준 언어 혹은 기계어로 변환해주는 역할을 한다.
⌿ 브라우저에서 자바스크립트 엔진은 DOM(Document Object Model)을 통해 렌더링 엔진(rendering engine)과 함께 작동한다.

⌓ 자바스크립트 엔진 파이프라인

⌿ 여러 자바스크립트 엔진(V8, SpiderMonkey, Chakra, JavaScript Core...)의 파이프라인이다.

⌿ 자바스크립트 소스 코드를 파싱하여 Abstract Syntax Tree(AST)로 만든다.
⌿ 인터프리터가 AST를 이용하여 바이트코드(byte code)를 생성한다.
⌿ 코드가 더 빨리 실행되도록 하기 위해, 바이트코드는 프로파일링 데이터와 최적화 컴파일러(optimizing compiler)로 보내진다.
⌿ 최적화 컴파일러는 보유하고 있는 프로파일링 데이터를 기반으로 특정한 가정(certain assumptions)을 하고 고도로 최적화된 기계어 코드(machine code)를 생성한다.
⌿ 어느 시점에서 가정 중 하나가 정확하지 않으면 최적화 컴파일러는 최적화 해제(deoptimize)를 하고 인터프리터로 돌아간다.

⌓ 자바스크립트 엔진 최적화 기법

coming soon...

ref >
https://en.wikipedia.org/wiki/JavaScript_engine
https://mathiasbynens.be/notes/shapes-ics
https://velog.io/@godori/JavaScript-engine-1
https://velog.io/@jakeseo_me/2019-04-30-1204-%EC%9E%91%EC%84%B1%EB%90%A8-fxjv37gc4s

0개의 댓글