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
- uitableview
- ribs
- Observable
- 스위프트
- Protocol
- Human interface guide
- UICollectionView
- HIG
- swiftUI
- Xcode
- Clean Code
- map
- MVVM
- tableView
- clean architecture
- RxCocoa
- uiscrollview
- 리펙토링
- combine
- 클린 코드
- collectionview
- 애니메이션
- swift documentation
- 리펙터링
- Refactoring
- SWIFT
- ios
- rxswift
- UITextView
- 리팩토링
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 2. memgraph 메모리 프로파일링 - vmmap을 사용하여 문제가 있는 코드의 메모리 주소 찾아내기 본문
iOS 응용 (swift)
[iOS - swift] 2. memgraph 메모리 프로파일링 - vmmap을 사용하여 문제가 있는 코드의 메모리 주소 찾아내기
jake-kim 2023. 12. 25. 23:20
2. memgraph 메모리 프로파일링 - vmmap을 사용하여 문제가 있는 코드의 메모리 주소 찾아내기
3. memgraph 메모리 프로파일링 - 메모리 주소로 코드 역추적하기
vmmap으로 memgraph파일 분석
- .mamgraph 파일은 이전 포스팅 글 참고
- 분석 목적: 큰 메모리를 잡아먹는 곳의 메모리를 분석하여 역으로 어떤 코드 부분인지 파악하는 것
vmmap --summary ExImageOptimazationBackground\[23907\].memgraph
결과)
- Physical footprint 총 2.5G 사용 확인
- swapped size 중 CG raster data를 보면 2.4G를 사용한 것을 확인
- 2.5G중에 2.4G가 swap메모리라는 것은 메모리 공간을 1G만 사용하고 디스크 공간을 2.4G사용한다는 의미 (가상 메모리 방식)
- CG raster data는 Core Graphics이며 그래픽 관련 이슈라는 것을 짐작가능
- 위에서 본 대로,CG raster data 메모리를 많이 사용하고 있으므로 이미지 관련 데이터만 summary없이 살펴보기
vmmap ExImageOptimazationBackground\[23907\].memgraph | grep "CG raster data"
결과)
- 여기서 256K 0K 0K 256K 로 나오는 부분은 순서대로, vitual, resident, dirty, compressed메모리를 의미
- virtual memory: 디스크에 있는 페이지를 swap한 것을 포함한 RAM 메모리 공간
- resident memory: RAM에 올라가 있는 용량이므로 프로세스가 사용할 수 있는 메모리
- dirty memory: 페이지 단위(4KB 크기)로 추적되는 프로세스에 의해 수정된 데이터 메모리 공간
- compressed memory: 중복된 데이터를 제거하고 메모리 사용량을 최적화한 메모리 공간
맨 아래에 요약 된 메모리 확인)
- 마지막 데이터의 시작 주소를 확인하고 복사
(이 메모리 주소를 가지고 코드 부분을 역추적할 수 있는데, 이 내용은 다음 포스팅 글에서 계속...)
* 전체 코드: https://ios-development.tistory.com/1601
* 참고
- https://developer.apple.com/videos/play/wwdc2018/416/
'iOS 응용 (swift)' 카테고리의 다른 글
Comments