2010-12-16 7 views
0

내 viewcontroller에서 UIImageView를 만들고 Interface Builder에서 이미지를 할당했습니다. 악기를 검사하는 동안 600kb의 malloc을 할당하고 책임감있는 라이브러리는 ImageIO_Malloc입니다. 그러나 나의 심상의 크기는 37kb이다. 나는 왜 그것이 600kb를 할당하는지 모른다.UIImage는 더 많은 메모리를 할당합니다.

또한 UIImage imageNamed를 할당하여 코드를 사용해 보았습니다. 아직도 좋지 않다.

사람들이 그것에 대해 알고 있습니다.

+0

개체 할당/초기화는 개체를 만듭니다. 할당 된 메모리의 크기는 실제로 이미지의 크기와 관련이 없어야합니다. 네가 그것을 풀어주지 않으면 정말 걱정하지 않을거야. –

+0

정확하게 풀어드립니다. 그러나 내가 다른 viewcontroller로 이동할 때마다 나는 이런 식으로 이미지를 할당하고 각 viewcontroller에 대해이 할당은 내 메모리를 많은 600kbs로 늘린다 – iPrabu

답변

2

600kB는 이미지에 실제로 할당하지 않습니다. 37kB는 아마도 압축 된 이미지 파일의 크기 일 것입니다. 그러나 이미지를 표시해야 할 때 이미지 뷰는 내부적으로 압축되지 않은 형식으로 표현 될 수 있도록 이미지 뷰에 다시 버퍼링을 할당해야합니다.

크기가 640x480 픽셀 인 이미지는 300.000 픽셀을 생성하며 각 픽셀은 R, G, B 및 가능한 알파 값을 필요로합니다. 이는 픽셀 당 3-4 바이트를 의미합니다. 따라서 상당히 작은 이미지의 경우에도 600kB 순서로 할당을 쉽게 볼 수 있습니다.

+0

그래서 나는 320x480 크기의 5 개의 imageviews를 가지므로 600x5 kbs 크기의 할당을 얻게됩니다. 할당 크기를 줄일 수 있습니까? – iPrabu

+0

물론, 이미지의 크기를 더 작게 만드십시오. 또는 필요없는 이미지를 메모리에로드하지 마십시오. –

관련 문제