문제

이 질문은 이미 있는 대답을 여기:

당신은 어떻게 가는 방법에 관한 많은 메모리 사용되고 있는가?나는 그것을 찾을 수 있는 방법을 많이 사용하여 코드 블록하지 않는 인스턴스화체(동안 언제든지 그 수명),which is what I want.

도움이 되었습니까?

해결책

쉬운 방법은 없을 찾아의 메모리 크기 python 체.문제 중 하나는 당신이 찾을 수 있는 파이썬체를 같이 나열하고 dicts-에 대한 참조를 포함할 수 있습 다른 python 체(이 경우,어떤 당신의 크기가?크기 크기를 포함하는 각 개체 또는지?).거기에 몇 가지 포인터를 오버헤드 및 내부 구조와 관련된 개체 종류와 가비지 컬렉션입니다.마지막으로,몇몇 파이썬은 개체는 명백하지 않습니다.예를 들어,목록 공간을 예약 더 많은 개체보다 그들이,대부분의 시간;dicts 은 더욱 복잡할 수 있기 때문에서 운영하는 다른 방법으로(그들은 다른 구현을 위해 작은 수의 열쇠를 때로는 그들 위에 할당 항목).

의 큰 덩어리 코드 (고 업데이트의 큰 덩어리 코드 이)려고 하는 최고의 대략적인 크기의 python 개체 메모리에 있습니다.

수도 있습니다인 옛 대한 설명에 대해 PyObject (내부 C 구조체를 나타내는 거의 모든 파이썬 개체).

다른 팁

이것을 보십시오:

sys.getsizeof(object)

getsizeof() 전화합체의 __sizeof__ 방법과 추가적인 쓰레기 수집가의 오버헤드 는 경우 체에 의해 관리되는 쓰레기 수집기.

재귀 레시피

또 다른 방법은 피클을 사용하여.보 이 답변 을 중복 이 질문입니다.

난 모든 개인적인 경험으로 다음 중 하나이지만,간단한 검색에 대한"Python[memory]프로파일러는"수확량:

  • PySizer,"메모리 프로파일러를 위한 Python,"에서 발견 http://pysizer.8325.org/.그러나 이 페이지를 나타내는 것으로 보인 프로젝트 업데이트되지 않았고 말한다.

  • Heapy,"지원[ing]디버깅 및 최적화에 관한 메모리에 관련된 문제에서는 파이썬 프로그램,"에서 발견 http://guppy-pe.sourceforge.net/#Heapy.

는 희망 도움이 됩니다.

이와 함께 사용해야 합료기 때문에 재정의 개체에__sizeof__될 수 있습니다.

를 사용하 bregman.suite,일부는 테스트를 sys.getsizeof 출력의 복사본을 배열체(data)에 객체를 인스턴스로는 보다 더 큰 개체(mfcc).

>>> mfcc = MelFrequencyCepstrum(filepath, params)
>>> data = mfcc.X[:]
>>> sys.getsizeof(mfcc)
64
>>> sys.getsizeof(mfcc.X)
>>>80
>>> sys.getsizeof(data)
80
>>> mfcc
<bregman.features.MelFrequencyCepstrum object at 0x104ad3e90>

에 대한 큰 물체를 사용할 수 있습니다 약간은 원하지만 효과적인 방법:는 방법을 확인하는 메모리 용량을 Python 과정을 차지하는 시스템에서 삭제한 다음 물체와 비교합니다.

이 방법에는 많은 단점이 있지만 그것은 당신에게 매우 빠른 견적을 위해 매우 큰 개체입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top