[TIL] Day 64 메모리 구조와 효율적 관리

현서·2026년 2월 26일

[TIL] Flutter 9기

목록 보기
76/102

메모리 구조와 효율적 관리

1. 메모리 영역 구조

영역역할특징
코드 영역설계도 저장기계어, 함수, 제어문 등 프로그램 코드 저장
데이터 영역공용 창고전역 변수, static, const 저장
힙 영역자유 공간동적 할당, 런타임 크기 결정, 개발자가 직접 관리 필요
스택 영역함수 호출 기록지역 변수, 함수 호출 시 생성, 함수 종료 시 자동 해제

2. 가상 메모리 & 가비지 컬렉션

가상 메모리: 실제 메모리와 독립적으로 프로그램에 할당되는 논리적 메모리
가비지 컬렉터 (GC): 더 이상 사용되지 않는 객체를 자동으로 해제
올드 제너레이션(Old Generation): 오래 살아남은 객체 영역
dispose(): 수동으로 리소스 해제

3. 메모리 누수 원인

  • dispose() 호출 누락
  • 스트림(Stream)을 취소하지 않고 종료
  • 이미 닫힌 화면의 context 참조
  • 전역 변수 누적
    → 결과: 죽지 않는 객체를 만들어 메모리 누수 발생

4. 메모리 효율적 사용 방법

  • 상수화: const 사용
  • 리스트 최적화: ListView.builder 사용
  • 리소스 해제: dispose() 철저히 사용
  • 이미지 캐싱: 재사용 가능한 이미지 캐싱
  • 모니터링: DevTools 사용, release 모드에서 그래프 확인

0개의 댓글