자바스크립트 엔진
2020. 3. 2. 15:09ㆍ웹/Javascript
정의
-
자바스크립트 코드를 실행하는 프로그램/인터프리터
-
자바스크립트 엔진은 표준적인 인터프리터로 구현 될 수 있고, 특정한 방식으로 바이트코드로 Just In Time(JIT)컴파일로 구현 할 수도 있음
-
여러 목적으로 사용될 수 있지만 주로 웹 브라우저를 위해 사용
-
자바스크립트 코드를 해석하고 실행하기 위해 만들어진 일종의 프로세스 가상 머신
역할
-
자바스크립트 코드를 브라우저에 의해 해석되거나 어플리케이션 임베드 될 수 있는 최적화된 코드로 변환하는 역할
-
자바스크립트 코드를 마이크로프로세서가 이해할 수 있는 더 낮은 수준의 언어 혹은 기계어로 변환해주는 역할
종류
-
Google - V8 (Chorme과 Node.js 사용)
-
Mozilla- Rhino
-
Firefox - SpiderMonkey
-
Safari - JavascriptCore
-
IE,Edge - Chakra
동작 과정
- 자바스크립트 소스 작성
- 파싱
- AST(Abstract Syntax Tree) 생성
- 인터프리터가 AST를 가지고 최적화 되지 않은 바이트 코드를 빠르게 생성
이 시점에서 엔진은 실제로 Javascript 코드를 실행 - 최적화 컴파일에서 약간의 시간을 들여 최적화된 기계어 코드 생성
- 만약 정확하지 않은 결과가 나왔다면 다시 바이트 코드로 변경(deoptimize)
출처
https://ko.wikipedia.org/wiki/자바스크립트_엔진
https://engineering.huiseoul.com/자바스크립트는-어떻게-작동하는가-v8-엔진의-내부-최적화된-코드를-작성을-위한-다섯-가지-팁
'웹 > Javascript' 카테고리의 다른 글
DOM(Document Object Model) (0) | 2020.03.05 |
---|---|
콜스택과 메모리 힙 (0) | 2020.03.05 |
Javascript Runtime (0) | 2020.03.05 |
브라우저 랜더링 (0) | 2020.03.02 |
자바스크립트 엔진 - V8 (0) | 2020.03.02 |