적용할 문제

운영 메모리 프로파일링에서 바꿀 결과와 유지할 기존 동작을 한 문장씩 적습니다. tracemalloc은 Python allocation 추적에 유용하지만 native extension memory와 전체 RSS를 모두 설명하지 않아 OS 지표를 함께 봐야 합니다.

선택의 기준

메모리 문제는 한 시점의 사용률이 아니라 시간에 따른 할당률, 작업 종료 뒤 기준선과 참조 경로를 봐야 합니다. heap과 native·buffer·파일 캐시를 분리하면 제한을 늘려야 하는지, 참조를 끊어야 하는지가 달라집니다. 현재 version의 공식 문서와 실제 설정을 확인하고 대표·경계·실패 사례를 준비합니다. py-spy/cProfile, tracemalloc, gc 통계, RSS, task와 file descriptor를 재현 입력과 함께 측정한다.

순서 할 일
1 수정 전 결과와 되돌릴 기준 저장
2 핵심 사실과 맞닿은 한 곳만 변경
3 같은 입력으로 수정 전후 비교

작은 적용과 확인

반복 횟수, 컬렉션, queue와 cache에 상한을 두고 상태를 만든 소유자가 listener·timer·handle까지 정리하게 합니다. 메모리 제한 상향은 원인 수정 뒤의 안전 여유로만 사용합니다. CPU와 I/O 작업을 구분하고 iterator, context manager, timeout, process·thread 선택을 측정 결과로 결정한다. 예상과 다르면 변경을 더 얹지 말고 처음 달라진 값으로 돌아갑니다. 입력 크기별 시간·메모리 복잡도, 장시간 RSS 기준선, 열린 자원과 취소 후 task를 확인한다. 동일 부하를 충분히 오래 유지한 뒤 GC 이후 live set과 RSS 기준선, allocation rate, 처리량과 pause가 함께 안정되는지 확인합니다.

공식 문서와 적용 범위

문서의 기본값과 동작은 version에 따라 달라질 수 있습니다. 현재 Python 구현과 version, dependency, 입력 크기와 실행 환경에서 다시 확인합니다.