Ios-memory-management
提供:Dev Guides
iOS-メモリ管理
iOSのメモリ管理は、当初、オブジェクトを保持および解放する必要がある非ARC(自動参照カウント)でした。 現在、ARCをサポートしており、オブジェクトを保持および解放する必要はありません。 Xcodeはコンパイル時に自動的にジョブを処理します。
メモリ管理の問題
Appleのドキュメントによると、メモリ管理の2つの主要な問題は次のとおりです-
- まだ使用中のデータを解放または上書きします。 メモリの破損を引き起こし、通常、アプリケーションがクラッシュしたり、さらに悪いことにユーザーデータが破損したりします。
- 使用されなくなったデータを解放しないと、メモリリークが発生します。 割り当てられたメモリが再び使用されることはないにもかかわらず解放されない場合、メモリリークと呼ばれます。 リークにより、アプリケーションは増え続けるメモリ量を使用し、その結果、システムパフォーマンスが低下したり(iOSで)アプリケーションが終了したりする可能性があります。
メモリ管理ルール
- 私たちは作成したオブジェクトを所有しており、それらが不要になったらそれらを解放する必要があります。
- Retainを使用して、作成しなかったオブジェクトの所有権を取得します。 これらのオブジェクトは、不要なときにも解放する必要があります。
- 自分が所有していないオブジェクトをリリースしないでください。
ARCでのメモリの処理
リリースを使用してARCで保持する必要はありません。 そのため、View Controllerが削除されると、View Controllerのすべてのオブジェクトが解放されます。 同様に、オブジェクトのサブオブジェクトは、リリースされるとリリースされます。 他のクラスがクラスのオブジェクトへの強い参照を持っている場合、クラス全体は解放されないことに注意してください。 そのため、デリゲートには弱いプロパティを使用することをお勧めします。
メモリ管理ツール
Xcodeツールインストゥルメントの助けを借りて、メモリの使用量を分析できます。 アクティビティモニター、割り当て、リーク、ゾンビなどのツールが含まれています。
メモリ割り当てを分析する手順
- ステップ1 *-既存のアプリケーションを開きます。
- ステップ2 *-製品を選択し、次に示すようにプロファイルを選択します。
- ステップ3 *-次の画面で[割り当て]を選択し、[プロファイル]を選択します。
- ステップ4 *-以下に示すように、さまざまなオブジェクトのメモリの割り当てが表示されます。
- ステップ5 *-View Controllerを切り替えて、メモリが適切に解放されているかどうかを確認できます。
- ステップ6 *-同様に、Allocationsの代わりに、Activity Monitorを使用して、アプリケーションに割り当てられたメモリ全体を確認できます。
- ステップ7 *-これらのツールは、メモリ消費量にアクセスし、潜在的なリークが発生した場所を特定するのに役立ちます。