iPhoneのメモリ管理
iPhoneアプリ開発はメモリ管理が大切。
ちと、メモがわりに。....〆(・ω・` )
各機種のメモリ容量
- iPhone3G : 128MB
- iPhone3GS : 256MB
- iPhone4 : 512MB
- iPad : 256MB
メモリ管理の注意点
例えばiPhone3Gでは128MBのRAMを備えているが、少なくともその半分はOSによって使用されている。
残りの半分をひとつのアプリケーションが使用できるわけではなく、わずか3MBのメモリを使用してもメモリ不足の警告が表示される。
Objective-C2.0を使用したとしても、iPhoneではガベージコレクションは使えない。
メモリ管理の基本的なルールとして、[alloc|retain|copy]の全てに対してどこかの時点で適切に[release]しなければならない。
Objective - Cのランタイムは、ヒープ上でのみインスタンス化されることが許されており、スタック上では許可されていない。
[autorelease]を使用してメモリを自動的に開放することはできる。ただしそのオブジェクトはプールが解放されるまではメモリが解放されないため、事実上のメモリリークになる可能性がある。
iPhoneにはスワップファイルがない。仮想メモリを持たないため、メモリ不足になったらアプリケーションは終了するしかない。
参考:akosma software - 10 iPhone Memory Management Tips
