SLTDV / Choice-iOS

선택의 순간에 Choice
8 stars 0 forks source link

Downsampling 적용 - 메모리 사용량 약 90% 감소 #143

Closed Mindohyeon closed 1 year ago

Mindohyeon commented 1 year ago

제목

Image 에 downsampling을 적용했습니다.

작업 내용

메모리 사용량을 약 90% 감소시켰습니다.

(테스트는 적용 전과 후 모두 게시물 처음부터 끝까지 스크롤 함)

메모리 사용량을 이미지 크기(해상도)로 계산되는데,

메모리 사용량 = 해상도(가로 pixel 세로 pixel) 4byte(RGBA)

downsampling은 표시할 이미지만큼 먼저 축소 해 불필요한 data buffer 를 제거한 채로 decoding 이 가능합니다. -> 메모리 절약 또한 해상도를 조절할 수 있는데, 기존 공식인 (해상도 * 4(RGBA))에서 RGBA를 수정하면 해상도를 조절할 수 있습니다. (scale이라고 명명)

현재는 scale 을 2로 설정했습니다.

downsampling 을 적용하기 전엔 약 1.2GB 의 메모리를 사용하고 있었습니다.

스크린샷 2023-07-10 오후 2 41 43

downsampling 을 적용 후 약 130MB의 메모리를 사용하고 있습니다.

caching 적용하고나서 홈에는 스케일 2 디테일에선 스케일 4

Ref. https://ios-daniel-yang.tistory.com/96

주의 사항

약간의 버벅임이 있을 수 있습니다.