V8은 C++로 작성된 구글의 오픈소스 자바스크립트, 웹어셈블리 엔진이다. 구글 크롬과 Node.js에서 사용한다.
자바스크립트로 작성된 코드를 실행시간에 바이트코드로 컴파일하여 실행한다. → JIT 컴파일 방식
ECMA ES-262 표준에 맞추어 구현되어 있다.
내부적으로 몇가지 스레드를 사용한다.
인라인 캐싱, 히든 클래스 등 여러 최적화 기법을 사용하고 있다.
v5.9부터 Full-codegen과 Crankshaft를 사용하지 않는다.
full-codegen, crankshaft 버리기 까지의 히스토리
V8 엔진의 컴파일러 파이프라인
고급 언어로 작성된 소스코드를 가상머신이 이해할 수 있는 중간 코드로 컴파일한 것
ignition의 바이트코드 파이프라인
https://nodejs.dev/learn/the-v8-javascript-engine