3

アプリがあり、それを起動した場合、Instruments を使用してメモリ使用量を秒単位で確認できますが、初期化中にメモリが一瞬 60MB まで上昇し、その後再び低下した場合はどうなるでしょうか? (いくつかの大きなグラフィック コンテキスト、ビットマップ、CALayers など)。

アプリが起動してからの最大値を確認する方法はありますか? 大規模なグラフィックス コンテキストとビットマップと CALayers を割り当てた後、100 万または 1000 万のダミー ループを追加して、メモリ使用量が数秒間一定になるようにする方法を考えました。楽器で見られます。

ただし、レイヤーが 5 つある場合は、グラフィックス コンテキストを 1 つ割り当て、ビットマップを取得してレイヤーに設定し、グラフィックス コンテキストはもう必要ないため、すぐに解放する方がよいでしょう。そして、5 つのグラフィックス コンテキスト、ビットマップを作成し、最後に 5 つすべてを解放する代わりに、次のグラフィックス コンテキスト、ビットマップ、レイヤーなどに進みます。しかし、穴居人の方法を実行するには、各リリースの前に 5 つの場所すべてにダミー ループを追加する必要があります。それを行うより良い方法はありますか?

4

1 に答える 1

2

Leaks または Allocations テンプレートを使用して、Allocations 手段を選択します。割り当てインストゥルメントの横にグラフがあります。グラフの上のタイムラインをクリックし、マウス ボタンを押したままにします。タイムラインに沿ってドラッグすると、Instruments はその時点で割り当てられたメモリの総量を表示します。

Leaks テンプレートと Allocations テンプレートの違いは、Leaks テンプレートはすべての割り当てを追跡するように Allocations Instrument を設定するのに対し、Allocations テンプレートは Allocations Instrument をアクティブな割り当てのみを追跡するように設定することです。

于 2012-08-16T19:48:47.850 に答える