3

私はプログラムでiphoneアプリからメモリ使用量を取得することについてのこの記事を見ました-retrieve -memory-usage-on-iphoneそれは素晴らしいです!

私のプロジェクトでは、利用可能なVRAMを無料で取得したいと考えています。これは、アプリが多くのテクスチャをロードするためです。高速レンダリングを行うには、これらをビデオRamにプリロードする必要があります。

しかし、VM_statisticsではこれらのプロパティを表示しません:vm_statisticsMANページ

どうもありがとうございました。

4

1 に答える 1

1

これまで見てきたように、GLテクスチャメモリ使用量のハード数値を取得することは非常に困難です。CoreAnimationは、あなた以外のプロセスからも含めて、あなたに「相談」することなくGLテクスチャメモリも使用するという事実によって、さらに複雑になります。

実際には、InstrumentsのVM Trackerインスツルメントを使用して、IOKitタグの下のプロセスマップのVMページの変更を監視することをお勧めします。少し粗雑ですが、私が見つけた最良のアプローチです。私の経験では、このプロセスは主に推測とチェックです。

無料のVRAMの量を決定する方法を具体的に求めましたが、その情報を入手できたとしても、実際には役に立たない可能性があります。アプリが完全にOpenGLであり、UIViewsまたはCoreAnimationレイヤーを使用しない場合でも、他のプロセス、最も重要なのは、自分よりも特権のあるプロセスが、CoreAnimationを介して明示的または暗黙的にいつでもそのメモリを消費する可能性があります。また、アプリがこれらのより特権のあるアプリが必要なテクスチャメモリを取得できないようにすると、プロセスが強制終了されると想定するのもおそらく安全です。

言い換えると、GLテクスチャメモリの瞬間的な状態を確認できたとしても、おそらくそのリソースの唯一の消費者であるとは期待できないので、それはかなり役に立たないのです。

結局のところ、GLメモリの観点から良き市民となるようにアプリを設計し、テクスチャメモリの消費を管理(読み取り:最小化)するために努力する必要があります。iOSデバイスは昔ながらのゲーム機ではありません-実行しているのはあなただけではありません-そのため、アプリが数分ごとに電話を再起動しなければならないアプリの1つにならないように、その事実に注意して寛容である必要がありますそれを使用するために。

于 2011-10-14T02:55:55.223 に答える