본문 바로가기
javascript pure/javascript 코어 개념

27. 자바스크립트 엔진(JavaScript Engine) - 3

by leo2114 2024. 2. 17.
반응형

자바스크립트 코드의 실행 과정과 최적화 전략

자바스크립트는 동적으로 타입이 결정되고, 인터프리터에 의해 한 줄씩 실행되는 스크립트 언어입니다. 이 챕터에서는 자바스크립트 코드의 실행 과정과 최적화 전략에 대해 알아보겠습니다.

 

핵심 내용:

  1. 파싱(Parsing)과 컴파일(Compilation):
    • 파싱: 자바스크립트 엔진은 코드를 토큰으로 분해하고 문법적 구조를 분석하여 AST(Abstract Syntax Tree)를 생성합니다.
    • 컴파일: 생성된 AST는 바이트코드 또는 기계어로 컴파일됩니다. 이 단계에서 인터프리터에 의해 실행되는 바이트코드 또는 JIT 컴파일러를 통해 기계어로 변환될 수 있습니다.
  2. 실행 과정:
    • 인터프리터(Interpreter): 대부분의 브라우저에서는 인터프리터를 사용하여 코드를 한 줄씩 실행합니다. 이는 빠른 시작과 메모리 사용량을 줄이는 데 도움이 됩니다.
    • JIT 컴파일러(Just-in-Time Compiler): 일부 엔진은 코드를 실행하는 동안 실시간으로 컴파일하여 성능을 향상시킵니다. 이를 통해 반복 코드 블록을 더 효율적으로 실행할 수 있습니다.
  3. 최적화 전략:
    • 인라인 캐싱(Inline Caching): 동적 디스패치를 최소화하기 위해 동일한 메소드 호출에 대한 결과를 캐싱합니다.
    • 호이스팅(Hoisting): 변수와 함수 선언을 코드 상단으로 이동하여 실행 속도를 향상시킵니다.
    • 최적화된 메소드 호출(Optimized Method Calls): 메소드 호출을 최적화하여 오버헤드를 줄입니다.
    • 루프 최적화(Loop Optimization): 루프의 반복을 최적화하여 실행 속도를 향상시킵니다.
    • 인라인 캐싱과 가비지 컬렉션 최적화: 메모리 관리를 최적화하여 성능을 향상시킵니다.

예시 코드:

function sum(a, b) {
  return a + b;
}

let result = sum(3, 4);
console.log(result);

 

위 코드는 간단한 자바스크립트 함수를 호출하는 예시입니다. 이 코드는 파싱과 컴파일 단계를 거쳐 인터프리터나 JIT 컴파일러에 의해 실행됩니다.

자바스크립트 엔진은 코드를 최적화하여 더 빠르게 실행되도록 노력합니다. 따라서 코드를 작성할 때 성능을 고려하여 최적화 전략을 적용하는 것이 중요합니다.

반응형