현재 Python 프로그램 (CPython 2.7이 설치된 Windows)의 메모리 사용량을 디버깅하려고합니다. 하지만 불행히도 현재 사용중인 메모리 양을 안정적으로 측정 할 수있는 방법을 찾을 수조차 없습니다.Python의 실제 메모리 사용량을 확인하십시오.
저는 작업 관리자/리소스 모니터를 사용하여 프로세스 메모리를 측정했지만 최대 메모리 사용량을 결정할 때만 유용합니다. 종종 파이썬은 관련 객체가 가비지 수집 된 후에도 커밋이나 작업 세트를 줄이지 않습니다.
파이썬이 실제로 사용하고있는 메모리 양을 알아 내거나 사용하지 않아서 사용하지 않는 메모리를 비울 수있는 방법이 있습니까? 나는 인터 퍼터를 다시 컴파일 할 필요가있는 것을 사용하지 않기를 바란다.
가 사용되지 않는 메모리를 해제하지 않는 증명 행동의 예 :
(after some calculations) # 290k
gc.collect() # still 290k
x = range(9999999) # 444k
del x # 405k
gc.collect() # 40k
OS에 메모리를 다시주지 않으면 할당 자의 표준이됩니다. 이론적으로 OS에 메모리를주기 위해 음의 값을 가진'sbrk'를 사용할 수는 있지만, 처음에는 그것을 가지고있는 것과 반대 순서로 메모리를 되돌려 주면 작동합니다. 이것은 보통 비현실적입니다 . – Voo
당신이 보여준 코드가 어떻게 보이는지 모르겠다. * 파이썬은 사용하지 않은 메모리를 비우지 않는다. –
파이썬에 신경 쓰지 마라. 행운을 빌며 * 모든 * 최신 OS의 * 모든 언어로 작성된 * 프로그램에서 의미있는 * 숫자를 얻을 수 있습니다. –