iOSのメモリ管理


IOS メモリ管理


はじめに

iOS でのメモリ管理の基本的な考え方は参照カウントであり、メモリ オブジェクトのライフ サイクルは参照を通じて制御されます。オブジェクトの数を数えます。プログラミング時間に特有の、主な方法は 2 つあります。

1: MRR (手動保持-解放)、手動参照カウント、オブジェクトの生成、破棄、および参照カウントの変更はすべて開発者によって完了されます。

2: 自動参照カウントである ARC (Automatic Reference Counting) は、オブジェクトの生成のみを担当します。他のプロセスの開発者はオブジェクトの破棄を気にする必要がなくなりました。使用方法はガベージ コレクションに似ています。しかし、その本質は依然として参照カウントです。

直面する問題

Apple のドキュメントによると、直面する主な問題は次の 2 つです。

解放または上書きされたデータはまだ使用されています。これによりメモリ破損が発生し、通常はアプリケーションがクラッシュしたり、さらに悪いことにユーザー データが破損したりすることがあります。

使用されなくなったデータを解放しないと、メモリ リークが発生する可能性があります。メモリ リークで割り当てられたメモリは、二度と使用されない場合でも解放されません。リークはアプリケーションによるメモリ使用量の増加につながる可能性があり、その結果、システム パフォーマンスの低下やフリーズが発生する可能性があります。

メモリ管理ルール

私たちは独自のオブジェクトを作成し、不要になったら解放します。

使用する必要があるオブジェクトを保管してください。これらのオブジェクトが不要になった場合は、解放する必要があります。

私たちが所有していないオブジェクトを解放しないでください。

メモリ管理ツールを使用する

Xcode ツールとインストゥルメントを使用してメモリ使用量を分析できます。これには、アクティビティ モニター、割り当て、リーク、ゾンビなどのツールが含まれています。

メモリ割り当てを分析する手順

1. 既存のアプリケーションを開きます。

2. 製品を選択し、設定ファイルは次のとおりです。

mm_Profile

3. 次のインターフェイスで [割り当て] と [プロファイル] を選択します。

mm_ProfileSelect

#4. さまざまなオブジェクトのメモリ使用量を確認できます

5. ビュー コントローラーを切り替えると、メモリが解放されているかどうかを確認できます。

mm_Instruments_Allocations

#6. 同様に、アクティビティ モニターを使用して、アプリケーション内のメモリの割り当てを表示できます。

mm_Instruments_ActivityMonitor

#7. これらのツールは、メモリの使用状況とリークが発生する可能性のある場所を理解するのに役立ちます。