개요
Python에서 객체의 크기 확인 방법은 다음과 같습니다.
- 변수의 __sizeof__() 함수 이용하기
- sys 모듈의 getsizeof() 함수 이용하기
두 방법 모두 객체의 메모리 사이즈를 바이트 단위로 반환합니다.
__sizeof__()
var1 = "a"
var2 = 10
var3 = 10.0
var4 = [10, 20]
var5 = {"a": 10}
var6 = True
print(var1.__sizeof__())
print(var2.__sizeof__())
print(var3.__sizeof__())
print(var4.__sizeof__())
print(var5.__sizeof__())
print(var6.__sizeof__())
# 다음과 같이 출력됩니다.
'''
50
28
24
56
216
28
'''
getsizeof()
import sys
var1 = "a"
var2 = 10
var3 = 10.0
var4 = [10, 20]
var5 = {"a": 10}
var6 = True
print(sys.getsizeof(var1))
print(sys.getsizeof(var2))
print(sys.getsizeof(var3))
print(sys.getsizeof(var4))
print(sys.getsizeof(var5))
print(sys.getsizeof(var6))
# 다음과 같이 출력됩니다.
50
28
24
72
232
28
다른 결과가 나온 이유
일부 변수는 두 방법 모두 같은 결과를 얻었지만 다른 변수에서는 두 방법으로 다른 결과를 얻었습니다.
https://docs.python.org/3/library/sys.html#sys.getsizeof
getsizeof() calls the object’s __sizeof__ method and adds an additional garbage collector overhead if the object is managed by the garbage collector.
sys모듈의 getsizeof()는 객체의 __sizeof__()를 실행하고 garbage collector overhead가 추가되기 때문에 원래 size보다 조금 더 큰 값이 출력될 수 있습니다.
참고자료
'python > basic' 카테고리의 다른 글
[Python] 연산자(Operators) - (1) 산술 연산자 (0) | 2023.05.31 |
---|---|
[Python] 문자열 포매팅 (0) | 2023.05.31 |
[Python] Built-in Data Types (자료형) (0) | 2023.05.30 |
[Python] global 키워드 (0) | 2023.05.30 |
[Python] Packing, Unpacking / 위치인자, 키워드인자 (0) | 2023.05.29 |