본문 바로가기
728x90

파이썬메모리최적화2

[PYTHON] Python Memory Profiler로 Tensor 메모리 파편화 해결 방법 및 7가지 추적 전략 딥러닝 모델을 학습시키거나 대규모 수치 연산을 수행할 때, 분명 메모리 총량은 충분함에도 불구하고 Out of Memory(OOM) 에러가 발생하는 기현상을 겪어보셨을 겁니다. 이는 대개 메모리 누수가 아닌 '메모리 파편화(Fragmentation)' 때문입니다. 텐서(Tensor) 객체들이 메모리 곳곳에 불연속적으로 배치되면서, 새로운 거대 텐서를 할당할 '연속된 공간'이 부족해지는 현상입니다. 본 포스팅에서는 memory_profiler와 Pytorch 내부 도구를 활용해 이 실체를 추적하고 해결하는 전문적인 엔지니어링 기법을 다룹니다.1. 메모리 누수(Leak)와 파편화(Fragmentation)의 결정적 차이많은 개발자가 이 두 개념을 혼동하지만, 해결 방법은 완전히 다릅니다. 누수는 사용하지 않.. 2026. 4. 14.
[PYTHON] 대규모 데이터 처리 시 메모리 점유율을 80% 이상 줄이는 5가지 해결 방법과 효율성 차이 파이썬은 개발 생산성이 매우 높은 언어지만, 모든 객체가 동적으로 관리되기 때문에 메모리 사용량 측면에서는 다소 사치스러운 면이 있습니다. 특히 수백만 개의 객체를 생성해야 하는 데이터 분석이나 백엔드 시스템에서는 __slots__를 사용하는 것만으로는 부족한 상황이 자주 발생합니다. 본 가이드에서는 엔지니어링 실무에서 즉시 적용 가능한, __slots__ 이외의 고급 메모리 최적화 테크닉 5가지를 심도 있게 다룹니다.1. 제너레이터(Generator)와 이터레이터 활용을 통한 지연 평가가장 흔하면서도 강력한 해결 방법은 리스트 컴프리헨션 대신 제너레이터 표현식을 사용하는 것입니다. 리스트는 모든 요소를 한꺼번에 메모리에 적재하지만, 제너레이터는 요청이 있을 때마다 요소를 생성(Lazy Evaluatio.. 2026. 3. 15.
728x90