반응형
__slots__로 메모리 절약하기
요즘 프로그램 개발 시 메모리 효율성은 중요한 고려사항입니다. 파이썬은 동적 타입 언어라 메모리 관리가 느릴 수 있는데, 이를 개선할 수 있는 기법 중 __slots__가 있습니다.
__slots__는 클래스에서 사용할 속성들의 이름을 미리 정의해 메모리 사용량을 최적화하는 방법입니다. 기본적으로 파이썬 객체에는 __dict__ 라는 딕셔너리 형태의 속성 저장소가 있어 메모리를 많이 차지합니다. 하지만 __slots__를 활용하면 객체당 고정된 양의 메모리만 사용하게 됩니다.
class MyClass(object):
__slots__ = ['name', 'age']
def __init__(self, name, age):
self.name = name
self.age = age
위 예시에서 MyClass의 인스턴스는 name과 age 속성만 가질 수 있고, __dict__가 생성되지 않아 메모리를 절약합니다. 단, 부모 클래스에 __slots__가 있다면 자식에서도 다시 정의해야 합니다.
__slots__를 잘 활용하면 대규모 객체 생성 시 상당한 메모리 절감 효과가 있습니다. 게임 개발이나 데이터 처리 등 메모리에 민감한 작업에서 유용합니다. 단, 동적으로 속성을 추가할 수 없다는 단점도 있습니다.
이처럼 __slots__는 파이썬 코딩에서 메모리 최적화를 위한 주요 기법 중 하나입니다. 메모리 효율적인 코딩을 하고 싶다면 __slots__를 적극 활용해 보시기 바랍니다.
반응형
'파이썬 기초문법' 카테고리의 다른 글
파이썬 데코레이터(decorator) 활용하기 (0) | 2024.05.12 |
---|---|
이터레이터(Iterator) vs 제너레이터(Generator) - 파이썬 대용량 데이터 처리의 지름길 (0) | 2024.05.10 |
파이썬 스네이크 게임 만들기(Code Llama) (1) | 2023.10.26 |
파이썬 selenium을 활용한 블로그 검색 및 자동 댓글 남기기 (2) | 2023.09.13 |
[Python] 정규식을 활용하여 알파벳과 숫자가 섞인 단어 제거 (0) | 2023.08.11 |