1

を使用してCALayerのインスタンスを作成し、[CALayer layer]そのフレームを画面のフレームに設定しました(たとえば、768 x 1024ポイント)。このレイヤーの内容は設定していません。このレイヤーはサイズが大きいために余分なメモリを消費しますか、それとも描画するものがないためにメモリ消費量は同じままですか?

4

3 に答える 3

3

CALayerは基本的に、いくつかのプロパティとメソッドにすぎません。したがって、CALayer自体は(ほとんど)メモリを消費しません。もちろん、コンテンツプロパティに画像を割り当てると、画像解凍(CGImage)形式で使用するメモリの量が消費されます。

(Afaik CALayerは実際の画像への参照のみを保存するため、正確にはCALayer自体にはまだほとんどメモリ使用量がありません)

実行時にアプリのメモリ使用量を確認するには、(非常に優れた)プロファイリングツールを使用します。

  1. プロファイリング用にビルド
  2. 実行中、プロファイルを選択します
  3. 「メモリ使用量」を選択します(または同様の方法で、現在MACに座っていません)
  4. 左上の赤い「記録」ボタンをクリックします

楽しい

于 2012-11-14T13:35:32.720 に答える
1

多数の空を割り当てて測定したところ、CALayerそれぞれに約340バイトのメモリが必要なようです。途方もなく大きなフレームを割り当てても、少しでも変更されません。

ただし、レイヤーは、画像の内容だけでなく、内部のピクセルキャッシュのために、かなりの量のメモリを消費する可能性があります。私はまだこれを試していませんが、画面上に描画を開始すると、図形やテキストのレイヤーでさえそれほど小さくないことは確かです。

于 2019-06-09T17:08:01.503 に答える
0

必要に応じて、レイヤーの作成前後に空きメモリを確認できます。あなたがそれをしたいなら、これをチェックしてください:

iOSデバイスで使用可能なRAMの量を決定する

于 2012-11-05T22:53:47.073 に答える