2017-09-08 3 views
0

アプリのログインビューは大きな背景画像を使用します。試してメモリ/アプリのサイズを節約するために、これらの画像のサイズを変更して圧縮しました。ファイルサイズが大幅に小さくなりました(1MB未満、数MBから)。UIImageViewで読み込んだときに小さなjpegより多くのメモリを使用する大きなjpeg。どうして?

私のアプリのメモリ使用量(XCodeデバッガ)を監視すると、変更された画像が表示されたとき(約30〜40MB)にはっきりとしたスパイクがあります。私はこれを通常通り受け入れ、メモリ使用量を制限するためにできるだけ早くイメージを解放するようにしました。

私は最近、いくつかの画像の置換を開始し、サイズ変更/圧縮を行う前に新しい画像をプレビューしたかったのです。私は、これらの画像(そのうちの1枚が11MB、4640×3472ピクセル)がアプリのメモリ使用量には何の影響も与えず、代わりに「その他のプロセス」を増やしていることに気づいた(約20〜30MB)。

ここで何が起こっているのか説明できる人はいますか?画像のサイズ変更/圧縮を続けることをお勧めします。

私はUIImage(contentsOfFile:)を使って画像をロードしていますが、私はGIMPを使用して画像のサイズを変更/圧縮しました。新しい画像はFlickrからそのまま取り込まれ、変更されていない。

乾杯。 (UIImageとして)画像の

+0

イメージのサイズは?大きなファイルのサイズは小さくしますが、サイズは小さくします。 – user3344003

+0

@ user3344003応答が遅れて申し訳ありません。小さいファイルのサイズは3788x2532です。 私が取り組んでいるデバイスは、iPad Mini 4th Genです。 –

答えて

2

ザメモリ内サイズは、圧縮されたディスク上のサイズとは異なっている(あなたのJPEG)

UIImageを有するXピクセル×高さあたり4バイト(RGBA)をとり - そう4640 x 3472イメージの場合、64,440,320バイトで、ディスク上の11MBとはかなり異なっています

+0

私は、ディスク上のファイルがアプリケーションでレンダリングするのに必要な実際のメモリと同じではないことを理解しています。私は小さな(500kb)jpegとあなたが言及している大きな(11mb)のものの間のメモリの挙動の違いによって混乱しています。 具体的には、小さなファイルは大きなファイルより多くのアプリケーションメモリを使用するように見えます。小さなファイルは、アプリケーションのメモリ占有量に直接寄与しているように見えますが、大きなファイルはOSによって他の場所で処理されるように見えます。 –

関連する問題