>백엔드 개발 >PHP 튜토리얼 >PHP 메모리 관리의 가비지 수집 메커니즘에 대한 자세한 설명(그림)

PHP 메모리 관리의 가비지 수집 메커니즘에 대한 자세한 설명(그림)

黄舟
黄舟원래의
2017-03-20 10:04:403211검색

php 변수는 zval 변수 컨테이너에 존재합니다. 변수의 유형과 값 외에도 컨테이너에는 is_ref가 참조

에 속하는지 여부도 포함됩니다. 🎜> 또한 참조 카운트가 있습니다. 변수를 다른 변수에 할당하면 참조 수가 증가합니다. 변수가 설정되지 않거나

범위를 벗어나면 참조 카운트가 1씩 감소합니다. 참조 횟수가 0으로 줄어들면 메모리가 재활용됩니다. 그러나 이러한 메커니즘은

루프 참조 시

메모리 누수를 일으킬 수 있습니다.

예:

배열 자체를 배열 요소로 간주하면 다음과 같은 내용이 나타납니다.

PHP 메모리 관리의 가비지 수집 메커니즘에 대한 자세한 설명(그림)

배열 a가 설정되지 않은 경우 그 후에 문제가 나타납니다.

PHP 메모리 관리의 가비지 수집 메커니즘에 대한 자세한 설명(그림)

메모리를 재활용할 수 없습니다.

이 문제를 해결하기 위해 php5.3 이후에 gc 메커니즘이 도입되었습니다. 구체적으로 루트 버퍼를 설정하고 의심스러운 zval 변수 컨테이너를

에 추가합니다. 1000. 가득 차면 재활용 알고리즘 메커니즘에 따라 삭제되도록 설정할 수 있습니다.

위 내용은 PHP 메모리 관리의 가비지 수집 메커니즘에 대한 자세한 설명(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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