Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Protocol
- map
- 리펙터링
- Refactoring
- collectionview
- 리펙토링
- Observable
- swiftUI
- Human interface guide
- SWIFT
- HIG
- 클린 코드
- UITextView
- uitableview
- ios
- UICollectionView
- clean architecture
- combine
- 스위프트
- ribs
- Clean Code
- RxCocoa
- 리팩토링
- 애니메이션
- tableView
- swift documentation
- MVVM
- rxswift
- uiscrollview
- Xcode
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] iOS 메모리 기초 개념 - virtual memory, dirty memory, clean memory, compressed memory, swapped memory, resident memory 이해하기 본문
iOS 응용 (swift)
[iOS - swift] iOS 메모리 기초 개념 - virtual memory, dirty memory, clean memory, compressed memory, swapped memory, resident memory 이해하기
jake-kim 2023. 12. 27. 00:22virtual memory 개념
- 운영체제에서의 가상메모리를 의미
- 하드웨어 RAM (맥북에서의 16G 등)을 물리적 RAM이라고 한다면, 이 16G의 부족한 공간을 위해서 디스크 공간도 같이 사용하는 방법
- process가 계산을 하다가 메모리에서 데이터를 찾는데, 이 때 virtual memory라는것을 두고 virutal memory에서는 RAM과 disk공간을 바라보는 것
- virtual memory 부분을 적절한 단위로 나누는데, 그것을 page라고 명칭
- 중요한 용어
- page out: physical메모리에 page에 대응하는 데이터가 없어서, physical메모리에 있는 어느 한 page와 disk에 있는 page랑 swap해야하는데, 이 때 physical memory에서 사용하지 않은 공간을 내준다는 의미로 page out이라 명명
- page in: 위에서 page out되면서 반대로 디스크 입장에서는 swap 될때 보내는 page를 의미
dirty memory, clean memory 개념
- clean memory: page out 될 수 있는 공간을 의미
- 아직 physical memory에서 사용되지 않아서 디스크로 언제든지 보낼 수 있어 여유공간을 의미
- dirty memory: page out 될 수 없는 이미 수정된 데이터 영역
ex) 배열을 선언하고 특정 인덱스에 값을 할당하면, 그 인덱스 영역은 이미 사용했으므로 page out이 불가능한 영역
Compressed memory 개념
- virtual memory를 사용하면 결국 디스크까지 가느라 I/O 작업으로 인하여 속도가 저하될 수 있는데, WWDC 2013에서 발표한 compressed memory는 디스크까지 굳이 가지 않고 RAM을 먼저 최적화한것
- 하드웨어의 제한 없이 소프트웨어로 접근한 애플
- 메모리 압축을 위해 WKdm 알고리즘을 사용
- WKdm 알고리즘은 32-bit data 16개로 이루어진 디렉토리와 압축된 결과를 쓸 메모리 공간만 있으면 압축할 대상의 크기에 상관없이 압축을 수행
- swap기준은 LRU 사용
- 압축률은 50% 이상이며 하나의 페이지를 압축하는데, 백만분의 수 초 수요
- 구체적인 내용은 애플에서 제공한 pdf 참고 - https://www.apple.com/media/us/osx/2013/docs/OSX_Mavericks_Core_Technology_Overview.pdf
swapped memory
- physical memory가 가득 찼지만 더 많은 공간이 필요한 경우, 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 공간
resident memory (resident size)
- RAM에 올라온 데이터들을 의미하여, 실제로 사용되어지고 있는 데이터들을 의미
추천할 다음 글) virtual size, dirty size, swapped size 등에 관해 분석해보고 싶은 경우, Instrument의 VM Tracker를 사용하면 되는데, 이 방법은 다음 포스팅 글 참고
* 참고
- https://www.apple.com/media/us/osx/2013/docs/OSX_Mavericks_Core_Technology_Overview.pdf
- https://developer.apple.com/documentation/xcode/reducing-your-app-s-memory-use
- https://core.ewha.ac.kr/publicview/C0101020140509151648408460?vmode=f
'iOS 응용 (swift)' 카테고리의 다른 글
Comments