파이썬에서 메모리 사이즈를 줄이기 위한 데이터 구조 및 알고리즘 선택 방법

메모리 사용량은 프로그램의 성능과 효율성에 영향을 미치는 중요한 요소입니다. 특히 파이썬 같은 동적 언어는 메모리 관리가 자동으로 이루어지기 때문에 잘못된 데이터 구조나 알고리즘 선택으로 인해 메모리 사용량이 증가할 수 있습니다. 이러한 상황에서 메모리 사이즈를 줄이기 위해 다음과 같은 방법들을 고려할 수 있습니다.

1. 리스트 대신 제네레이터 사용하기

리스트는 메모리에 모든 원소를 저장하는 반면, 제네레이터는 필요할 때마다 원소를 생성하여 메모리 사용량을 최소화할 수 있습니다. 예를 들어, 큰 파일을 읽어들일 때 리스트는 전체 파일을 메모리에 저장하지만, 제네레이터를 사용하면 한 줄씩 읽어들여서 처리할 수 있습니다.

# 리스트로 파일 데이터 읽기
data = []
with open('data.txt', 'r') as f:
    data = f.readlines()

# 제네레이터로 파일 데이터 읽기
def read_file(file_name):
    with open(file_name, 'r') as f:
        for line in f:
            yield line

data = read_file('data.txt')

2. 사전(dictionary) 대신 집합(set) 사용하기

파이썬의 사전은 키와 값의 쌍을 저장하는 공간이므로, 키와 값이 모두 필요하지 않은 경우에는 집합으로 대체하여 메모리를 절약할 수 있습니다. 집합은 고유한 값을 저장하기 위해 사용되며, 키만 저장하면 되기 때문에 메모리 사용량이 작아집니다.

# 사전으로 중복 값 제거하기
data = [1, 2, 3, 2, 4, 1, 5, 3]
unique_values_dict = {}
for value in data:
    unique_values_dict[value] = None

unique_values = list(unique_values_dict.keys())

# 집합으로 중복 값 제거하기
unique_values_set = set(data)

#Python #MemoryManagement

메모리 사이즈를 줄이기 위해 데이터 구조와 알고리즘 선택은 매우 중요합니다. 리스트 대신 제네레이터를 사용하거나 사전 대신 집합을 사용하여 메모리 사용량을 최적화할 수 있습니다. 이러한 최적화를 통해 프로그램의 성능과 효율성을 개선할 수 있습니다.