2010-12-16 94 views
0

在我的viewcontroller中,我創建了一個UIImageView並在Interface Builder中分配了一個圖像。在檢查儀器時,我已經分配了600kb的malloc,並且負責的庫是ImageIO_Malloc。但是我的圖像大小是37kb。我不知道它爲什麼分配600kb。UIImage分配更多內存

我也試着用代碼分配UIImage imageNamed。仍然沒有好處。

你們有什麼想法。

+0

分配/初始化一個對象就創建了一個對象。分配的內存大小實際上與圖像大小無關。除非你不發佈,否則我真的不會擔心。 – 2010-12-16 13:55:22

+0

我正確釋放它。但每當我移動到另一個viewcontroller我分配這樣的圖像和每個viewcontroller這個分配上升我的記憶到許多600kbs – iPrabu 2010-12-16 13:58:30

回答

2

600 kB真的沒有太多分配給圖像。您的37 kB可能只是壓縮映像文件的大小。但是,當需要顯示該圖像時,圖像視圖需要分配回緩衝,以便可以在內部以未壓縮格式表示。

尺寸爲640x480像素的圖像將產生300,000個像素,每個像素需要R,G,B和可能的alpha值 - 意味着每像素3-4個字節。所以你可以很容易地看到og 600 kB的分配,即使是相當小的圖像。

+0

因此,如果我有五個320x480尺寸的圖像我會得到一個600x5 kbs的大小的分配。我可以減少這些分配大小嗎? – iPrabu 2010-12-16 15:32:57

+0

當然,使圖像的尺寸更小。或者,不要在內存中加載不需要的圖像。 – 2010-12-16 23:40:46