728x90
앱 실행 시 Virtual Memory
- Swift 앱이 시작될 때, 가상 메모리의 빈 주소 공간을 할당받음
- 메인 실행 파일, 라이브러리, 프레임워크를 로드
- 디스크로부터 읽기 전용 리소스 로드
- 실행 후
- 각 스레드의 로컬, 임시 변수에 대해 스택을 사용
- 동적 메모리, 수명이 긴 메모리는 힙 사용
Heap Memory
- 힙은 여러 가상 메모리 영역으로 구성
- 각 영역은 개별 힙 할당으로 분할
- 할당 내부는 16KB 메모리 페이지로 더 크거나 작을 수 있음
- 메모리 페이지는 3개의 상태: Clean, Dirty, Swapped(Compressed)
- Clean page
- 쓰기가 완료되지 않은 메모리
- 할당되었지만 사용되지 않았거나, 읽기 전용 파일을 나타내는 페이지
- Dirty page
- 앱에 의해 최근에 쓰인(수정된) 페이지
- Swapped(Compressed) page
- RAM에서 최근 사용한 항목(LRU)을 압축하고, 압축 해제하는 메모리 최적화 기법
- 디스크 I/O 작업보다 빠름
- 디스크에서 페이지 스왑하는 비용 최소화
- Clean page
728x90
'Swift > Basic' 카테고리의 다른 글
Data Type (0) | 2024.11.07 |
---|---|
Concurrency (0) | 2024.11.07 |
GCD (0) | 2024.10.31 |
Memory Management (0) | 2024.10.31 |
Thread (0) | 2024.10.31 |