중화사전망 - 서예자전 - 파이썬 메모리 관리 방법

파이썬 메모리 관리 방법

파이썬 메모리 관리는 일반적으로 다음 세 가지 영역에서 수행됩니다.

1) 참조 개수 메커니즘 (4 증가 5 빼기)

2) 가비지 수집 메커니즘 (수동 및 자동, 세대 간 재활용)

3) 메모리 풀 메커니즘 (큰 m 작은 p)

1) 객체 참조 개수 메커니즘

Python 은 메모리의 객체를 추적하기 위해 간단한 참조 개수 기술을 사용합니다. Sys. getrefcount(A) 는 객체 a 의 참조 수를 확인할 수 있지만 1 보다 높습니다. 이 함수를 호출할 때 a 가 전달되어 a 의 참조 수가+1 이 되기 때문입니다.

2) 가비지 수집 메커니즘

많이 먹으면 살이 찐다. 아나콘다도 마찬가지다. 파이썬의 객체가 점점 더 많아지면 점점 더 많은 메모리를 사용하게 됩니다. 하지만 파이썬의 크기에 대해 너무 걱정할 필요는 없습니다. 그것은' 다이어트' 를 하고 적절한 시기에 쓰레기 수집을 시작한다.

컬렉션), 쓸모없는 객체를 지웁니다.

기본적으로 파이썬의 객체에 대한 참조 수가 0 으로 떨어지면 해당 객체에 대한 참조가 없으며 해당 객체는 재활용할 쓰레기가 됩니다.

예를 들어 새로 작성된 객체는 참조에 지정되고 해당 객체의 참조 수는 1 이 됩니다. 참조가 제거되고 객체의 참조 수가 0 인 경우 객체를 가비지로 수집할 수 있습니다.

그러나, 살을 빼는 것은 돈도 많이 들고 힘겨운 일이다. 파이썬은 가비지 수집 중에 다른 작업을 수행할 수 없습니다. 잦은 가비지 수집은 파이썬의 생산성을 크게 떨어뜨릴 수 있다. 메모리에 개체가 많지 않으면 가비지 수집을 항상 시작할 필요는 없습니다.

따라서 파이썬은 특정 조건에서만 가비지 수집을 자동으로 시작합니다. 파이썬이 실행되면 할당 객체 (객체) 를 기록합니다

할당) 및 객체 할당 해제 횟수입니다. 그것들 사이의 차이가 특정 임계값보다 크면 가비지 수집이 시작됩니다.

Gc 모듈의 get_threshold () 메서드를 통해 임계값을 확인할 수 있습니다.

3) 스토리지 풀 메커니즘

파이썬은 큰 메모리와 작은 메모리로 나뉩니다. (256K 는 경계 메모리입니다.)

1, 대용량 메모리는 malloc 에 의해 할당됩니다.

2. 작은 메모리는 메모리 풀에 의해 할당됩니다.

파이썬에는 두 가지 메모리 관리 메커니즘이 있습니다. 하나는 작은 개체에 대한 것입니다. 즉, 크기가 256K 미만이면 pymalloc 이 메모리 풀의 메모리 공간을 요청합니다. 256K 보다 크면 시스템의 malloc 동작을 직접 수행하여 메모리 공간을 요청합니다.