Programming language/Python

제너레이터(Generator)

아네스 2021. 6. 30. 01:09
반응형

강의에서 메모리 아낄 때 좋다길레, 직접 찍어봤다.

 

import psutil
def memory_usage(message: str = 'debug'):
    # current process RAM usage
    p = psutil.Process()
    rss = p.memory_info().rss / 2 ** 20 # Bytes to MB
    print(f"[{message}] memory usage: {rss: 10.9f} MB")

인터넷에 파이썬 메모리 추적할 수있는 함수를 하나 따오고

 

 

Generator로 for문을 돌렸을 때 13.511MB -> 13.53MB으로 증가하며  메모리에 적재됨을 볼 수있고, (0.02MB사용)

 

list로 돌렸을 때 , 0... ? 왜 안늘지.

 


다시. 이번에 for문의 range를 1000으로 늘려서 4*1000= 4000의 원소를 가지는 list를 만들어 비교해봤다.

 

리스트 크기가 점점 커질수록 제너레이터의 메모리가 적게 차지함을 볼 수 있었습니다.

반응형

'Programming language > Python' 카테고리의 다른 글

리스트 연산  (0) 2021.06.30
파이썬 얕은 복사 , 깊은 복사  (0) 2021.06.30
파이썬 레퍼런스 링크  (0) 2021.06.29
PEP8 참고 링크  (0) 2021.06.29
[Python] 상속시 super().__init__ 사용  (0) 2021.01.07