Flash Liteプレーヤーは様々な構造体にダイナミックにメモリを割り当てます。構造体には、レンダリングオブジェクト、画像、ActionScriptオブジェクト、音声、XML、その他、プレーヤーのあらゆる機能が該当します。安定したパフォーマンスを保証するため、Flash Liteはオペレーティングシステム(OS)から一定サイズのメモリを確保します。これはスタティックメモリヒープと呼ばれます。このメモリはプレーヤーを起動したときに確保されます。サイズはデバイスメーカーによって定義されています。
メーカーの設計に基づいて、OSからプレーヤーに追加のメモリが割り当てられます。これはダイナミックメモリヒープと呼ばれます。Flash Liteは起動時にこのヒープ用のメモリを確保しませんが、必要に応じてOSからダイナミックに割り当てます。ただし、デバイスメーカーによってホストOSがプレーヤーに割り当てることのできるメモリの総量の上限が定義されています。スタティックヒープもダイナミックヒープも両者の合計が指定された総量に達するまで増加できます。
プレーヤーはすべてのメモリ要求に対して、まずスタティックヒープからの割り当てで対応しようとします。スタティックヒープに十分なメモリが残っていない場合、プレーヤーはダイナミックヒープからの割り当てを試みます。これは32 KB単位でスタティックヒープに追加されます。つまり、スタティックヒープのサイズが大きくなります。ダイナミックメモリがない場合、プレーヤーはエラーを発生して終了します。レンダリングオブジェクトとJPEG画像ではメモリ割り当ての順序が逆になります。最初にダイナミックヒープからメモリの割り当てが行われます。ダイナミックヒープにメモリがなければスタティックヒープから割り当てられます。つまり、Flash Lite 2.xは可能なかぎりダイナミックメモリを使用してJPEGとレンダリングオブジェクトを格納します。その他の構造体にはスタティックメモリが使用されます。
プレーヤーが一時停止している場合やバックグラウンドにある場合、解凍されたJPEGとレンダリングオブジェクトにダイナミックヒープから割り当てられていたメモリは解放されてOSに戻ります。スタティックメモリヒープから解放されたメモリ(記事の後半で説明します)は、OSに戻りません。プレーヤーが必要に応じて新しいオブジェクトに再使用します。つまり、スタティックヒープのサイズは減少しません。