2017-09-08 13 views
0

우리 앱의 로그인 화면은 큰 배경 이미지를 사용합니다. 메모리/앱 크기를 저장하기 위해이 이미지의 크기를 조정하고 압축하여 파일 크기를 크게 줄였습니다 (1MB 미만, 몇 MB 미만).UIImageView에서로드 할 때 더 작은 jpeg보다 많은 메모리를 사용하는 큰 jpeg. 왜?

내 응용 프로그램 메모리 사용 (Xcode 디버거)을 모니터링 할 때 수정 된 이미지가 표시 될 때 (약 30-40mb) 명확한 스파이크가 있습니다. 나는 이것을 정상적으로 받아 들였고 단순히 메모리 사용을 제한하기 위해 가능한 한 빨리 이미지를 공개하도록했다.

저는 최근 몇 장의 이미지를 교체하기 시작했으며 크기를 조정하거나 압축하기 전에 이미지 몇 장을 미리보고 싶었습니다. 나는이 이미지들 (디스크 중 하나가 11MB, 4640x3472 픽셀 중 하나)이 앱 메모리 사용에 눈에 띄는 영향을 미치지 않는다는 것을 알아 차렸다. 대신 다른 프로세스 (20-30MB 정도)가 증가했다.

여기에 무슨 일이 일어 났는지 설명 할 수 있습니까? 이미지 크기 조정/압축을 계속하는 것이 좋습니다.

UIImage(contentsOfFile:)을 사용하여 이미지를로드 중이며 김프를 사용하여 이미지의 크기를 조정/압축했음을 유의하십시오. 새로운 이미지는 Flickr에서 바로 가져 와서 수정되지 않았습니다.

건배. (a UIImage대로) 압축 된 디스크상의 크기와 다른 이미지의

+0

이미지의 크기는 무엇입니까? 크기가 큰 파일은 있지만 작은 파일은 제공하지 않습니다. – user3344003

+0

@ user3344003 응답 지연에 대해 사과드립니다. 작은 파일의 크기는 3788x2532입니다. 내가 노력하고있는 장치는 iPad Mini 4th Gen입니다. –

답변

2

인 - 메모리 크기 (검색 JPEG)은

UIImage는 x에 픽셀 x 높이 당 4 바이트 (RGBA)를 얻어 - 그래서 4640 x 3472 이미지의 경우 64,440,320 바이트입니다. 디스크의 11MB와는 전혀 다릅니다.

+0

디스크의 파일이 앱에서 렌더링하는 데 필요한 실제 메모리와 같지 않다는 것을 알고 있습니다. 저는 작은 (500kb) jpeg와 큰 (11mb) 하나의 메모리 동작의 차이에 대해 혼란스러워합니다. 특히 작은 파일은 큰 파일보다 많은 응용 프로그램 메모리를 사용하는 것처럼 보입니다. 큰 파일은 이상하게 보입니다. 더 작은 파일은 또한 앱 메모리 풋 프린트에 직접적으로 기여하는 반면 큰 파일은 OS에 의해 다른 곳에서 처리되는 것처럼 보입니다. –