웹 프론트엔드 JS 튜토리얼 Javascript 가비지 컬렉션 메커니즘 소개 및 이해_기본지식

Javascript 가비지 컬렉션 메커니즘 소개 및 이해_기본지식

May 16, 2016 pm 05:33 PM
쓰레기 모으다 기구

Javascript를 자주 사용하는 사람들은 가비지 수집 메커니즘에 대해 생각할 것입니다. Javascript는 개발자가 C 및 C와 같이 가비지를 수동으로 지울 것을 요구하지 않습니다. Javascript 프로그램을 작성할 때 개발자는 메모리 사용량, 필요한 메모리 할당 및 쓸모없는 메모리(쓰레기)의 재활용은 자동으로 완전히 관리됩니다. 근본 원인은 프로그램이 더 이상 사용되지 않는 변수를 수집하고 해당 변수가 차지하는 메모리를 해제하기 때문입니다. 따라서 가비지 수집 메커니즘은 이 작업을 고정된 간격으로 주기적으로 반복적으로 수행합니다.


예를 들어 지역 변수는 함수 내부에만 존재합니다. 프로그램은 스택 메모리나 힙 메모리에 지역 변수에 해당하는 저장 공간을 할당합니다. 함수가 끝나면 지역 변수가 차지하는 메모리는 더 이상 존재하지 않습니다. 필요한 경우 프로그램은 다른 변수에서 사용할 수 있도록 지역 변수가 차지한 메모리를 해제합니다. 이는 프로그램이 메모리를 해제하는 가장 간단한 방법이지만 프로그램의 변수는 항상 사용됩니다. 이 때 가비지 수집 메커니즘은 변수를 추적하고 사용 여부와 메모리 공간을 확인해야 합니다. 출시될 수 있습니다.

가비지 수집 메커니즘은 주로 마크 앤 클리어 방법과 참조 카운팅 방법의 두 가지 방법으로 메모리 공간을 해제하기 위해 변수를 판단합니다.

표기법에 따르면 각 변수에는 고유한 실행 환경이 있습니다. 변수가 생성된 후에는 특정 환경에서 실행됩니다. 예를 들어 로컬 변수를 생성하면 해당 로컬 변수가 함수 본문에서 실행됩니다. 함수가 실행 중일 때 로컬 변수는 "환경에 진입 중"으로 표시되며, 함수 본문이 종료되면 변수가 실행 환경을 떠난다는 의미입니다. . "환경을 떠나는" 변수의 경우 가비지 수집 메커니즘은 이를 적절하게 기록하고 다음 수집 주기에 해제합니다.

각 값이 참조되는 횟수를 추적하는 참조 계산 방법입니다. 변수를 선언하고 참조 유형 값을 변수에 할당하면 해당 값의 참조 카운트는 1입니다. 동일한 값이 다른 변수에 할당되면 해당 값의 참조 카운트가 1 증가합니다. 반대로, 이 값에 대한 참조를 포함하는 변수가 다른 값을 취하는 경우 해당 값의 참조 카운트는 1씩 감소합니다. 이 값에 대한 참조 횟수가 0이면 더 이상 이 값에 접근할 수 없다는 뜻이므로 차지하는 메모리 공간을 재활용할 수 있다. 다음 주기에서 가비지 수집기가 실행되면 참조 횟수가 0인 값이 차지한 메모리 공간이 해제됩니다. (원문 설명 참고 : Javascript Advanced Programme - Second Edition)

예:

코드 복사 코드는 다음과 같습니다. Object( ; 1
    }


이 함수가 종료된 후 object1의 카운터 판독값은 1이고 object2의 카운터 차수는 1입니다. 따라서 두 변수 모두 파괴되지 않습니다. 함수 본문에 이러한 프로그램이 많이 존재하면 많은 양의 메모리가 낭비되고 재활용할 수 없어 메모리 누수가 발생합니다.

위 문제를 해결하려면 object1 object2가 차지하는 메모리를 수동으로 해제하십시오. 즉,



코드 복사


코드는 다음과 같습니다.
object1.method1 = null; 2 .method2 = null; 위의 예를 비교하고 일반적인 상황에서 예를 들어보세요.


코드 복사

코드는 다음과 같습니다.

function countMethod(){
var object1 = new Object(); // 변수 선언, 카운터가 0에서 1로 변경
var object2 = new Object(); 0에서 1까지
object1.method1 = "이것은 object1입니다."; // object1 카운터 -1, object1 읽기는 0으로 변경됩니다.
object2.method2 = "이것은 object2 카운터입니다." // object2 카운터입니다. object2 읽기는 0이 됩니다
}

위의 예에서 볼 수 있듯이 일반적인 상황에서는 함수가 종료되면 object1과 object2의 읽기가 0이 됩니다. 다음 가비지 수집에서는 주기마다 재활용되고 차지하는 메모리가 해제됩니다.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Stardew Valley에서 견목을 빠르게 수집하는 방법 Stardew Valley에서 견목을 빠르게 수집하는 방법 Mar 26, 2024 am 11:21 AM

견목은 스타듀밸리의 중요한 합성재료입니다. 게임 내에서 다양한 용도로 사용할 수 있으므로 일상생활에서 이를 비축할 수 있습니다. 여기서는 스타듀밸리를 참고할 수 있습니다. 필요한 경우 모노가타리에서 견목을 얻는 방법. 스타듀밸리에서 견목을 얻는 방법 1. 매일 비밀의 숲에 가서 나무 그루터기를 파서 견목을 빠르게 획득하세요. 2. 비밀의 숲에서 나무 그루터기를 채굴하고, 몬스터와 전투를 하면 일정 확률로 마호가니 씨앗을 얻을 수 있습니다. 3. 마당에 씨앗을 심으면 마호가니 나무가 자랄 것입니다. 4. 마지막으로 마호가니를 채굴한 후, 대량의 견목을 빠르게 얻을 수 있습니다.

휴대폰에 CentOS 설치 및 휴대폰에 CentOS 7 설치 휴대폰에 CentOS 설치 및 휴대폰에 CentOS 7 설치 Feb 29, 2024 pm 02:43 PM

서문 열렬한 Linux 사용자로서 우리는 휴대폰에 CentOS 또는 CentOS7을 설치해야 하는 경우가 종종 있습니다. 휴대폰이 최고의 Linux 실행 플랫폼은 아니지만 휴대폰에서 일부 Linux 관련 작업이나 개발 작업을 수행해야 하는 경우도 있습니다. 이 기사에서는 휴대폰에 CentOS 또는 CentOS7을 설치하는 방법에 대해 자세히 설명합니다. 휴대폰에 CentOS 설치 휴대폰에 CentOS를 설치하려면 먼저 Android 시스템을 지원하는 휴대폰과 같은 가상화 기술을 지원하는 휴대폰이 필요합니다. 그런 다음 Termux와 같은 터미널 에뮬레이터 응용 프로그램을 사용하여 Linux를 시뮬레이션할 수 있습니다. Termux에서는 패키지 관리자를 사용하여 CentOS를 설치할 수 있습니다.

Windows 11/10의 Microsoft Edge 브라우저에는 장치 간 파일 전송을 용이하게 하는 '모바일 업로드' 기능이 추가되었습니다. Windows 11/10의 Microsoft Edge 브라우저에는 장치 간 파일 전송을 용이하게 하는 '모바일 업로드' 기능이 추가되었습니다. Feb 22, 2024 am 08:10 AM

Microsoft는 최신 안정 버전인 Windows 11/10의 Edge 브라우저에 "모바일 업로드"라는 새로운 기능을 추가했습니다. 이제 사용자는 Edge 브라우저를 통해 휴대폰에서 직접 파일을 업로드할 수 있으며, 이 기능은 파일 형식 제한 없이 거의 모든 웹사이트에서 작동합니다. 이 기능의 도입으로 사용자는 보다 편리한 업로드 방법을 제공받게 되어 Edge 브라우저 사용 시 파일을 보다 효율적으로 관리하고 공유할 수 있게 되었습니다. "모바일 업로드" 기능을 사용하는 방법: Edge 브라우저를 열고 웹사이트에서 "업로드" 옵션을 클릭한 다음 파일 선택기에서 "모바일에서 업로드"를 선택합니다. 휴대폰 카메라를 사용하여 QR 코드를 스캔하세요. Edge 브라우저에서 장치를 페어링하려면 "확인"을 클릭하세요. "파일 업로드" 옵션을 클릭하세요

CSS 레이아웃 재계산 및 렌더링 메커니즘에 대한 깊은 이해 CSS 레이아웃 재계산 및 렌더링 메커니즘에 대한 깊은 이해 Jan 26, 2024 am 09:11 AM

CSS 리플로우와 리페인트는 웹페이지 성능 최적화에 있어 매우 중요한 개념입니다. 웹 페이지를 개발할 때 이 두 개념이 어떻게 작동하는지 이해하면 웹 페이지의 응답 속도와 사용자 경험을 향상시키는 데 도움이 될 수 있습니다. 이 기사에서는 CSS 리플로우 및 리페인트의 메커니즘을 자세히 살펴보고 구체적인 코드 예제를 제공합니다. 1. CSS 리플로우란 무엇입니까? DOM 구조에서 요소의 가시성, 크기 또는 위치가 변경되면 브라우저는 CSS 스타일을 다시 계산하고 적용한 다음 다시 레이아웃해야 합니다.

Windows 10에서 시스템 정크를 정리하는 방법에 대한 단계별 자습서 Windows 10에서 시스템 정크를 정리하는 방법에 대한 단계별 자습서 Jul 13, 2023 pm 09:53 PM

일부 사용자는 컴퓨터를 사용할 때 Win10 시스템 정크 정리 문제에 직면했습니다. Win10 시스템 정크 정리 문제를 어떻게 해결해야 합니까? 요즘에는 Win10 시스템에서 쓰레기를 정리하는 상황을 어떻게 처리해야 하는지 모르는 사용자가 여전히 많습니다. 따라서 Win10에서 시스템 쓰레기를 정리하는 방법에 대한 단계별 튜토리얼을 살펴보겠습니다. 바라보다. 1. 컴퓨터 바탕화면에서 "내 PC"를 클릭하고 관리하세요. 2. 디스크 관리를 선택합니다. 3. 정리하려는 디스크를 선택하고 마우스 오른쪽 버튼을 클릭한 후 속성을 선택합니다. 4. 페이지 하단에 있는 "디스크 정리" 버튼을 클릭하십시오. 5. 나타나는 인터페이스에서 정리하려는 파일을 선택하고 "확인"을 클릭한 다음 "파일 삭제"를 클릭하십시오. 위 내용은 Windows 10에서 시스템 정크를 정리하는 방법에 대한 단계별 튜토리얼입니다.

Golang 변수의 저장 위치와 메커니즘에 대한 심층 탐구 Golang 변수의 저장 위치와 메커니즘에 대한 심층 탐구 Feb 28, 2024 pm 09:45 PM

제목: Golang 변수의 저장 위치와 메커니즘에 대한 심층 탐구. 클라우드 컴퓨팅, 빅데이터 및 인공지능 분야에서 Go 언어(Golang)의 적용이 점차 증가함에 따라 이에 대한 심층적인 탐구가 특히 중요합니다. Golang 변수의 저장 위치와 메커니즘에 대한 심층적인 이해. 이 기사에서는 Golang의 메모리 할당, 저장 위치 및 관련 변수 메커니즘에 대해 자세히 설명합니다. 특정 코드 예제를 통해 독자가 Golang 변수가 메모리에 저장되고 관리되는 방식을 더 잘 이해할 수 있도록 도와줍니다. 1.Golang 변수의 메모리

PHP의 자동 로딩 메커니즘 PHP의 자동 로딩 메커니즘 Jun 18, 2023 pm 01:11 PM

PHP 언어가 점점 대중화되면서 개발자는 점점 더 많은 클래스와 함수를 사용해야 합니다. 프로젝트 규모가 커지면 모든 종속성을 수동으로 도입하는 것은 실용적이지 않습니다. 이때 코드 개발 및 유지 관리 프로세스를 단순화하려면 자동 로딩 메커니즘이 필요합니다. 자동 로딩 메커니즘은 런타임에 필요한 클래스와 인터페이스를 자동으로 로드하고 수동 클래스 파일 도입을 줄일 수 있는 PHP 언어의 기능입니다. 이를 통해 프로그래머는 코드 개발에 집중할 수 있으며, 지루한 매뉴얼 수업 도입으로 인한 오류와 시간 낭비를 줄일 수 있습니다. PHP에서는 일반적으로

흩어진 원신의 불멸의 힘을 모으는 방법 흩어진 원신의 불멸의 힘을 모으는 방법 Feb 01, 2024 pm 04:51 PM

Genshin Impact에서 플레이어는 많은 도전에 직면하게 되며 각 도전 미션은 서로 다른 재미를 선사합니다. 그러나 이러한 도전을 성공적으로 완수하고 잃어버린 불멸의 힘을 모으는 것도 어렵습니다. 이 작업을 수행하는 방법은 다음과 같습니다. 우선, 플레이어는 흩어져 있는 요정의 힘을 찾기 위해 게임 세계의 구석구석을 탐험해야 합니다. 이러한 마법의 힘은 계곡, 동굴 또는 기타 비밀 장소에 숨겨져 있을 수 있습니다. 캐릭터의 기술과 능력을 활용하여 캐릭터를 발견하세요. 둘째, 다른 플레이어와 팀을 이루는 것은 임무를 완료하는 좋은 방법입니다. 그룹으로 탐색하면 Xianli를 찾을 가능성이 높아지고 작업을 빠르게 완료할 수 있습니다. 친구나 다른 플레이어와 팀을 이루어 함께 세계를 탐험하고, 서로를 돕고, 더 많은 요정의 힘을 수집하세요. 마지막으로 적과 함정을 조심하세요. Xun Yuanshen에서 흩어진 불멸의 힘을 수집하는 과정을 완료하는 방법

See all articles