2010-12-16 10 views
0

私のviewcontrollerで私はUIImageViewを作成し、Interface Builderで画像を割り当てました。楽器をチェックしている間、私は600kbのmallocを割り当てています。責任を負うライブラリはImageIO_Mallocです。しかし、私のイメージのサイズは37kbです。私はそれが600kbを割り当てる理由を知らない。UIImageはより多くのメモリを割り当てます

私はUIImage imageNamedを割り当ててコードを試してみました。まだ良いことはありません。

あなたは人々にそれについて考えていますか?

+0

オブジェクトの割り当て/初期化は、それだけでオブジェクトを作成します。割り当てられたメモリのサイズは、実際に画像のサイズとは関係ありません。あなたがそれをリリースしない限り、私は本当にそれについて心配しないでしょう。 –

+0

私は正しくリリースしています。しかし、私は別のviewcontrollerに移動するたびに、私はこのようなイメージを割り当てられ、各viewcontrollerのためにこの割り当ては多くの600kbsに私のメモリを持ち上げます – iPrabu

答えて

2

600kBは実際にはあまりイメージに割り当てられません。おそらくあなたの37キロバイトは圧縮されたイメージファイルのサイズに過ぎません。しかし、その画像を表示する必要がある場合、画像ビューは内部的に非圧縮形式で表現できるように、画像のビューにバックバッファリングを割り当てる必要があります。

サイズが640x480ピクセルの画像は300.000ピクセルになり、それぞれにR、G、Bとアルファ値が必要になります。つまり、ピクセルあたり3〜4バイトを意味します。したがって、かなり小さい画像でさえも、600kBのオーダーの割り当てを簡単に見ることができます。

+0

私は320x480サイズの5つのimageviewsを持っているので、私は600x5 kbsのサイズの割り当てを取得します。私はそれらの割り当てサイズを減らすことができます。 – iPrabu

+0

確かに、画像の寸法を小さくしてください。または、不要な画像をメモリにロードしないでください。 –

関連する問題