Python/Python

[Python] 튜플(tuple) 성능

상쾌한기분 2021. 11. 12. 16:10
728x90
반응형

튜플

튜플은 한번 생성되면 내용이나 크기를 변경할 수 없지만 두 튜플을 합칠 수는 있다.

>>> t1 = (1,2,3)
>>> t2 = (4,5,6)
>>> t1 + t2
# (1,2,3,4,5,6)

튜플은 합치면 항상 메모리에 새로운 튜플을 새로 할당 한다.
또 튜플은 여유공간을 할당하지 않기 때문에 자원을 더 적게 사용한다.

l = [i for i in range(100000)]
t = tuple(l)

print('list', sys.getsizeof(l))
print('tuple', sys.getsizeof(t))
list 824464
tuple 800048

이 때문에 정적인 데이터를 다룰때는 리스트보다는 튜플이 좋다.
또한 튜플은 정적이기에 리소스 캐싱을 하는데 크기가 20~2만 까지는 회수하지 않고 저장해 둔다.
이는 같은 크기에 튜플이 필요해지면 기존 메모리 공간을 활용 한다는 것이다.

728x90
반응형