JIT 컴파일러

2023. 8. 14. 11:15·프로그래밍 언어/javascript
728x90
  • 컴파일러 vs 인터프리터
    • ??차이는??
    • 컴파일러
      • 소스코드 -> 머신코드 -> 프로그램 실행
        • 소스코드 -> 머신코드 : 전처리(preprocessing)
        • 머신코드 -> 프로그램 실행 : 처리(processing)
    • 인터프리터
      • 소스코드 -> 프로그램 실행
        • processing만 존재
    • 컴파일러는 한 번에 머신 코드로 실행되고 바이너리 파일로 쓰여진다. 컴파일 이후에 실행이 가능하다.
    • 인터프리터는 한줄씩 소스 코드를 읽으면서 실행하고 컴파일러에 비해 속도가 느리다. 변경 사항을 빠르게 테스트할 수 있다.

js는 인터프리터 언어인가??

    • 맞긴하다!
      • 하지만 chrome v8 engine이 나온 이후로는 컴파일도 같이 진행한다.
      • why? 성능 최적화를 하기 위함!

​

JIT(Just-In-Time) 컴파일러

​

인터프리터는 소스코드 -> 프로그램 실행

JIT 컴파일러는

소스코드 -> 머신코드 -> 프로그램 실행

  • 소스코드 -> 머신코드 : 컴파일(preprocessing)
  • 머신코드 -> 프로그램 실행 : 즉시 처리(processing)

머신코드에서 즉시 처리하여 프로그램을 실행한다.

​

  • JIT

js 엔진에서

소스코드 -> 파싱

AST(abstract syntax tree, AST) 로 파싱한다.

파싱 -> 컴파일

AST -> 머신코드

​컴파일 -> 실행

​

컴파일 -> 실행 -> 최적화 -> 컴파일

참고 : https://curryyou.tistory.com/237

 
자바스크립트 코드 실행 동작 원리: 엔진, 가상머신, 인터프리터, AST 기초

웹개발자라면, 적든 많든 자바스크립트를 다루지 않을 수 없습니다. 이번 글에서는 자바스크립트 코드가 내부적으로 어떤 원리로 실행되는지를 정리해 보려고 합니다. 아래 그림은 자바스크립트의 구동원리를 도식화한 것입니다. 이 글을 끝까지 읽으시면, 이 그림이 완벽히 이해되실겁니다. # 자바스크립트 코드의 구동 원리 일반적으로 소스코드는 어떤 원리로 실행될까요? 1. 코드 실행의 기본 원리 - 프로그래밍 언어로 코드를 작성한다. - 인터프리팅, 컴파일 등의 과정을 통해 0, 1로 이루어진 기계어로 변환된다. - 0, 1로 이루어진 기계어 ...

curryyou.tistory.com

 
728x90
반응형
저작자표시 (새창열림)

'프로그래밍 언어 > javascript' 카테고리의 다른 글

호이스팅, 스코프  (1) 2023.08.14
실행 컨텍스트  (0) 2023.08.14
javascript 특징  (0) 2023.08.14
javascript engine과 runtime  (1) 2023.08.14
javascript(자바스크립트) 기초, 개발 환경 구축, 기초 함수 소개  (1) 2022.02.15
'프로그래밍 언어/javascript' 카테고리의 다른 글
  • 실행 컨텍스트
  • javascript 특징
  • javascript engine과 runtime
  • javascript(자바스크립트) 기초, 개발 환경 구축, 기초 함수 소개
pink_salt
pink_salt
유익함을 주는 개발자가 되도록 keep going
  • pink_salt
    KeepGoingForever
    pink_salt
  • 전체
    오늘
    어제
    • 분류 전체보기 (117)
      • Project (7)
      • WEB study (3)
        • WEB(Springboot) (10)
        • Git, GitLab (13)
        • Clean code (1)
        • FrontEnd (3)
      • Study (21)
        • Algorithm (19)
        • 면접 준비 (2)
      • Cloud Computing (2)
        • AWS (2)
      • 프로그래밍 언어 (35)
        • Java (29)
        • Python (0)
        • javascript (6)
      • 운영체제 (0)
        • Linux (0)
      • Database (4)
        • MongoDB (8)
        • SQL (8)
      • 애플리케이션 개발 (1)
        • Android (1)
      • AI (1)
        • Deeplearning (1)
        • machinelearning (0)
      • Daily (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Git
    빅오표기법
    객체지향
    무료코딩교육
    codepresso
    티스토리챌린지
    자바
    오블완
    코드프레소
    백준
    무료IT교육
    SWEA
    gitlab
    SW
    언어
    코딩강의
    dp
    Query
    MongoDB
    mysql
    BFS
    Java
    대외활동
    spring boot
    git branch
    IT교육
    개념
    코딩이러닝
    Database
    python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
pink_salt
JIT 컴파일러
상단으로

티스토리툴바