MKMap 스냅샷 메모리 최적화

OQ·2022년 3월 20일
0

실험실

목록 보기
3/6
post-thumbnail

간략히 지도에 위치를 보여주는 페이지가 있습니다.
맵뷰가 있는 해당 화면은 지도의 축소/확대, 위치이동 등의 인터렉션이 필요없는 화면이었습니다.
그렇기 때문에 메모리 50Mb 나 항상 잡아먹는 맵뷰는 배보다 배꼽이 더 큰 상황입니다.

그리하여 MKMapSnapshotter 도입하였습니다.
네이밍에서 알 수 있다시피 해당 지도의 스냅샷을 UIImage로 뽑아주는 그런 녀석입니다.
MKMapView가 들어가는 화면에서 MKMapSnapshotter 기능 도입을 통해 메모리가 얼마나 절약되는지 실험하였습니다.

Before (도입 전)


저 우뚝 쏟은 봉우리는 MKMapView가 메모리에 로딩 된 시점입니다.
해당 실험에 쓰인 페이지는 MKMapView가 단 한개 있지만 만약 여러개가 보여지는 경우라면 50Mb * N 이상의 메모리를 차지할 것으로 보입니다.

After (도입 후)

도입 결과 메모리 사용률이 잔잔한 수면처럼 큰 변화가 없는 것을 볼 수 있습니다.

50Mb의 메모리 정도는 사실 크게 실경 쓸 부분은 아닙니다.
하지만 이러한 작은 메모리 관리부터 하나씩 절약해야지 쾌적한 사용자 경험을 만들어낼 수 있다고 생각합니다.

profile
덕업일치 iOS 개발자

0개의 댓글