>웹 프론트엔드 >JS 튜토리얼 >js 가비지 수집 메커니즘이란 무엇입니까? js 가비지 수집 메커니즘 소개

js 가비지 수집 메커니즘이란 무엇입니까? js 가비지 수집 메커니즘 소개

不言
不言원래의
2018-08-15 17:40:444559검색

이 기사의 내용은 js 가비지 수집 메커니즘에 대한 소개입니다. 필요한 친구가 참고할 수 있기를 바랍니다.

JS에는 자동 가비지 수집 메커니즘이 있습니다. 가비지 수집기는 고정된 간격으로 주기적으로 실행됩니다.

Js의 일반적인 가비지 수집 방법: 표시 지우기 및 참조 계산.

1. 마크 지우기 방법:

작동 원리: 변수가 환경에 들어갈 때 해당 변수를 "환경에 진입"으로 표시합니다. 변수가 환경을 떠나면 "환경을 떠나는 것"으로 표시됩니다. "환경을 떠나다"라고 표시된 메모리는 재활용됩니다.

작업 흐름:

  • 가비지 수집기는 작업 중에 메모리에 저장된 모든 변수를 표시합니다.

  • 환경의 변수와 환경의 변수에서 참조하는 변수를 제거합니다. 표시된 변수는 삭제될 변수로 간주됩니다.

  • 가비지 수집기는 메모리 정리 작업을 완료하고 표시된 값을 삭제하고 메모리 공간을 차지하는 값을 재활용합니다.

  • 2. 참조 계산 방법:
  • 작동 원리: 각 값이 참조되는 횟수를 추적하고 기록합니다.

  • 작업 흐름:

변수를 선언하고 참조 유형 값을 변수에 할당합니다. 이 참조 유형 값의 참조 수는 1입니다.

  • 동일한 값이 다른 변수에 할당됩니다. 이 참조 유형 값의 참조 번호는 1만큼 증가합니다.

  • 이 참조 유형 값을 포함하는 변수가 다른 값에 할당되면 이 참조 유형 값의 참조 번호는 1만큼 감소합니다.
  • 참조 수가 0이 되면 이 값에 접근할 방법이 없다는 의미입니다.

  • 다음번에 가비지 수집기가 실행되면 참조 횟수가 0인 값이 차지한 메모리를 해제합니다.的 그러나 사이클 참조 시 메모리는 해제되지 않습니다. - 메모리 누수 원인

    IE의 BOM 및 DOM이 구현되므로 COM 개체에서 사용하는 가비지 수집 메커니즘은 참조 기술 전략입니다. 그러면 순환 참조 문제가 발생하게 됩니다.

  • 해결책: JS 객체와 DOM 사이의 링크를 수동으로 연결 해제하고 값을 null에 할당합니다. IE9는 DOM과 BOM을 실제 JS 객체로 변환하므로 이 문제를 피할 수 있습니다.
  • 관련 권장 사항:

    PHP의 가비지 수집 메커니즘 재활용 쓰레기란 무엇입니까 가비지 수집 비재활용 쓰레기
  • PHP5.3의 가비지 수집 메커니즘에 대하여

위 내용은 js 가비지 수집 메커니즘이란 무엇입니까? js 가비지 수집 메커니즘 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.