산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 객체 메모리 사용량 측정: sys.getsizeof() 완벽 가이드

파이썬에서 객체의 메모리 사용량을 확인해야 할 때 sys.getsizeof() 함수가 가장 직관적인 도구입니다. 하지만 이 함수의 동작 방식을 정확히 이해하지 못하면 의외의 결과에 당황할 수 있습니다.

기본 사용법

import sys

mylist = range(0, 10000)
print(sys.getsizeof(mylist))  # 48

왜 10,000개 요소가 고작 48바이트일까?

range() 함수는 실제 숫자 리스트를 메모리에 생성하지 않습니다. 대신 시작값, 끝값, 스텝만 저장하는 이터러블 객체를 반환하므로 메모리 효율이 극도로 높습니다. 이는 지연 평가(lazy evaluation) 방식의 전형적인 예시입니다.

실제 리스트와의 비교

리스트 컴프리헨션으로 실제 리스트를 생성하면 메모리 사용량이 급증합니다.

import sys

myreallist = [x for x in range(0, 10000)]
print(sys.getsizeof(myreallist))  # 87632 (약 87KB)

중요한 한계점

sys.getsizeof()는 객체 자체의 크기만 반환하며, 참조하고 있는 다른 객체들의 크기는 포함하지 않습니다. 중첩된 자료구조의 실제 메모리 사용량을 알고 싶다면 pympler 라이브러리의 asizeof나 직접 재귀 함수를 구현해야 합니다.

실무 팁

python

  1. 파이썬 데이터 타입 마스터하기: 실전 가이드
  2. 파이썬 연산자 마스터하기: 종합 가이드
  3. 파이썬 pass 문 마스터하기: 실전 가이드
  4. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  5. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  6. 파이썬 range() 함수 마스터하기: 기초부터 고급 활용까지
  7. 파이썬 time.sleep(): 코드에 지연 추가하는 방법 (예제)
  8. 파이썬에서 파일과 디렉터리 존재 여부 확인하기: 실전 가이드
  9. 분기별 공급망 건강 검진: 원활한 운영 보장
  10. 건설 장비 필수 봄맞이 준비: 시간 절약 & 수명 연장