Python 계산 대상의 메모리 크기 예시

1314 단어
본고의 실례는 파이톤이 계산 대상을 실현하는 메모리 크기를 설명한다.여러분에게 참고하도록 공유하겠습니다. 구체적으로는 다음과 같습니다.
일반sys.getsizeof () 는 복잡한 사전을 표시할 수 없습니다.
클래스의 컨텐트를 보려면 다음과 같이 하십시오.

def dump(obj):
 for attr in dir(obj):#dir 
  print(" obj.%s = %r" % (attr, getattr(obj, attr)))


모든 대상의 getsizeof를 반복해서 호출합니다:

def get_size(obj, seen=None):
 # From https://goshippo.com/blog/measure-real-size-any-python-object/
 # Recursively finds size of objects
 size = sys.getsizeof(obj)
 if seen is None:
  seen = set()
 obj_id = id(obj)
 if obj_id in seen:
  return 0
# Important mark as seen *before* entering recursion to gracefully handle
 # self-referential objects
 seen.add(obj_id)
 if isinstance(obj, dict):
  size += sum([get_size(v, seen) for v in obj.values()])
  size += sum([get_size(k, seen) for k in obj.keys()])
 elif hasattr(obj, '__dict__'):
  size += get_size(obj.__dict__, seen)
 elif hasattr(obj, '__iter__') and not isinstance(obj, (str, bytes, bytearray)):
  size += sum([get_size(i, seen) for i in obj])
 return size


파이썬 관련 내용에 관심이 있는 더 많은 독자들은 본 사이트의 주제를 볼 수 있다.
본고에서 서술한 것이 여러분의 파이톤 프로그램 설계에 도움이 되었으면 합니다.

좋은 웹페이지 즐겨찾기