JS엔진 - execution context

서민수·2023년 9월 5일
0

자바스크립트

목록 보기
24/25

JS 코드의 실행 과정!

Excution Context

  • JS엔진이 JavaScript 코드를 실행할 때 컴퓨터로부터 할당받은 메모리 공간에 필요한 정보(코드, 변수, 함수)를 저장해 두는 공간

Excution Context의 종류

1. Global Executiaon Context

  • js코드를 실행시키게되면 기본적으로 생성하는 Context
  • 현재 실행되는 코드에서 함수"안"에 있지않은 모든 정보를 담는다
  • js 프로그램마다 단 하나의 GEC만 존재가능
  • js 코드 실행이 마무리 될때까지 존재

2. Function Executiaon Context

  • js코드를 실행중 함수가 실행될때마다 생성되는 Context = 여러개 생성가능
  • 현재 실행되는 함수의 인자값과 그 안에서 선언된 모든 정보를 담는다

3. Garbage Collection 과 Memory 해제

  • 참조 횟수(Reference count)가 0이 된 개체(변수,함수)는 주기적으로 메모리에서 지운다
  • Mark and sweep 알고리즘 사용

Mark and sweep 알고리즘?
Mark and sweep 알고리즘은 가비지 컬렉션 알고리즘 중,
메모리 관리를 위해 사용되는 알고리즘 중 하나이다.
이 알고리즘은 동적으로 할당된 메모리에서 사용하지 않는 객체(또는 쓰레기)를 식별하고,
회수하여, 메모리 누수를 방지하는데 사용된다.

Execution Context의 Phase

1. 생성단계(Creation Phase)

  • 해당 execution context에서 사용할 코드, 변수, 함수들을 준비해 두는 단계

2. 실행단계(Execution Phase)

  • 코드를 한줄한줄 실행하면서 이미 준비해둔 변수, 함수에 계산완료된 값들을 할당하는 단계
profile
안녕하세요

0개의 댓글