본문 바로가기
TIL(Today I Learned)

[TIL] 2023.1.24

by Cafe Mocha 2023. 1. 24.

설 마지막 연휴!

대전에서 마지막 날이라 여기저기 다니느라 공부한 내용만 간단히 기록!

 

자바스크립트 엔진이 코드를 실행시키는 과정

  • 자바스크립트를 실행하기 위해선 자바스크립트 엔진이 필요하고 웹 브라우저는 자바스크립트 엔진을 내장하고 있다. 브라우저마다 엔진의 종류가 다르지만 코드를 실행하는 방식은 비슷하기 때문에 보통 어떻게 실행하는지 알아두는 것이 좋다. (V8, SpiderMonkey, Javascript core 등의 구현이 각각 다르다)
    • 소스코드를 만나면 파싱하여 AST(Abstract Syntax Tree)(추상구문트리) 로 변환한다.
    • 인터프리터(Interpreter) 는 AST를 기반으로 바이트코드(Bytecode)를 생성 한다.
    • 인터프리터가 바이트코드를 실행할 때, 자주 사용되는 함수 및 타입 정보 등이 있는 프로파일링 데이터(Profiling data) 와 같이 최적화 컴파일러(Optimizing compiler) 에게 보낸다.
    • 최적화 컴파일러는 프로파일링 데이터를 기반으로 최적화된 코드(Optimized code)를 생성 한다.
    • 하지만, 프로파일링 데이터 중에 잘못된 부분이 있다면 최적화 해제(Deoptimize) 를 하고 다시 바이트코드를 실행해서 이전 동작을 반복한다.
  • 바이트코드?
    • 바이트코드 (Bytecode, portable code, p-code)는 특정 하드웨어가 아닌 가상 컴퓨터에서 돌아가는 실행 프로그램을 위한 이진 표현법이다. 하드웨어가 아닌 소프트웨어에 의해 처리되기 때문에, 보통 기계어보다 더 추상적이다.

'TIL(Today I Learned)' 카테고리의 다른 글

[TIL] 2023.1.27  (0) 2023.01.27
[TIL] 2023.1.26  (0) 2023.01.26
[TIL] 2023.1.23  (0) 2023.01.23
[TIL] 2023.1.17  (0) 2023.01.17
[TIL] 2023.1.16  (0) 2023.01.16