Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 메모리 수명 주기에 대해 자세히 설명하시겠습니까?

<시간/>

메모리 주기

프로그래밍 언어에 관계없이 메모리 주기는 모든 프로그래밍 언어에서 거의 동일합니다.

메모리 수명 주기에는 3단계가 있습니다.

1) 메모리 할당 .

2) 할당된 메모리 사용(읽기 또는 쓰기)

3) 할당된 메모리가 필요 없을 때 해제합니다.

첫 번째 부분과 마지막 부분은 저급 언어에서는 직접 연결되지만 JavaScript와 같은 고급 언어에서는 간접적으로 연결됩니다.

1) 자바스크립트에서 메모리 할당

JavaScript는 가비지 수집 언어라고 합니다. 즉, 변수가 선언되면 자동으로 메모리를 할당합니다. 선언된 변수에 대한 참조가 더 이상 없으면 할당된 메모리가 해제됩니다.

예시

다음 예제에서 자바스크립트는 숫자, 문자열 및 개체에 대해 메모리를 할당했습니다.

var n = 989;      // allocates memory for a number
var s = 'qwerty'; // allocates memory for a string

var o = {
        a: 1,
        b: null
        };        // allocates memory for an object and contained values

2) 할당된 값 사용

값을 사용한다는 것은 기본적으로 할당된 메모리에서 읽고 쓰는 것을 의미합니다. 이는 변수 또는 개체 속성의 값을 읽거나 쓰거나 함수에 인수를 전달하여 수행할 수 있습니다.

3) 불필요할 때 할당된 메모리 해제

대부분의 메모리 관리 문제는 이 단계에서 발생합니다. 여기서 엄청난 작업은 할당된 메모리가 더 이상 필요하지 않은 때를 파악하는 것입니다. 이 문제를 해결하기 위해 대부분의 고급 언어는 가비지 수집기라는 소프트웨어를 포함합니다.

가비지 수집기의 작업은 메모리 할당을 추적하고 할당된 메모리가 더 이상 필요하지 않은 시점을 찾아 해제하는 것입니다. 불행히도 이 프로세스는 일부 메모리가 필요한지 여부를 아는 일반적인 문제를 결정할 수 없기 때문에 추정일 뿐입니다. (알고리즘이 추적할 수 없음)

Javascript 가비지 수집기는 참조 계산 가비지 수집과 같은 일부 알고리즘을 사용하여 더 이상 사용하지 않는 메모리를 파악합니다.