3

画像を表示するときにiOSがメモリをどのように使用しているか知りたい...

例:2000w、2000hの画像がありますが、この特定のケースのiphone、ipodには460x920の長方形があります(単なる例)...画像がiOSデバイスの長方形にちょうど見える場合、私はメモリが使用されていることは確かですが、現在四角形に描画されていない残りの画像はどうなりますか? そのメモリは消費されていますか?またはiOSは、描画されたセクションだけにメモリを使用していないほどスマートですか?または、これはメモリリークと見なされますか?

一部のゲームでは、視差ノードまたは類似のものを使用する大きな画像を使用するより長いシナリオが必要になるため、これは疑問に思っています。しかし、これが私の記憶にどのように影響するのか疑問に思い始めました.

ご回答ありがとうございます。

4

2 に答える 2

8

iPhone 4 には 512MB の RAM があります。これは CPU と GPU の間で共有されます。つまり、ビデオ RAM がその一部を消費します。

UIImage割り当てられた 2000 x 2000 ピクセルについて話している場合。画面外であっても、RAMを消費します。正確には、2000*2000*4、約 16MB を消費します。これは、Objective-c ランタイムによって管理されます。これはかなりの量です。私の知る限りUIImage、4 シリーズのデバイスの最大サイズは 2048x2048、3 シリーズのデバイスでは 1024x1024 です。

表示長方形、または話している画面は、ビデオ RAM の一部です。通常の表示手順では、ビデオ RAM で画像を合成して、グラフィック ハードウェアで表示できるようにします。

したがって、この 512MB の RAM 内にイメージのコピーが 2 つあります。1 つはコードで読み込んで変更できるもの (RAM) で、もう 1 つは表示用の小さいもの (VRAM) です。VRAM ではありますが、画面のサイズのみが使用されます。

いいえ、これはメモリ リークではありません。

于 2012-04-08T05:52:37.710 に答える
2

はい、イメージ全体がメモリにロードされます。CATiledLayer などを使用して、画像をより適切に管理できます。

于 2012-04-08T14:24:00.760 に答える