FlashでもFlexでもメモリリークには気をつけないといけません。
Flex Builderなら強力なプロファイラがあるからいいけど、
FlashDevelopとかでFlexアプリを作る場合の、メモリ使用量の監視と強制GCを行うコード。
1 2 3 4 5 6 7 |
<mx:Label id="totalMemory" text="{(System.totalMemory / 1024) + 'KB'}" render="totalMemory.text = (System.totalMemory / 1024) + 'KB'" /> <mx:Button id="gcButton" label="force garbage collection" click="System.gc()" /> |
System.totalMemoryはFlashPlayerのメモリ使用量、
System.gc()でガベージコレクションプロセスを強制します。(デバッグ版FlashPlayerのみ)
FlashDevelopでこれをスニペット化するには、
[Tools] → [General Tools] → [Snippet Editor] → [xml]
で上のコードを”TrackMemory”とか好きな名前で登録しとくと便利です。
このコードスニペットを使うにはエディタ上でCtrl+Bで選択するだけ。簡単。
ただ、今はFlex Builderのプロファイラが強力すぎてもう手放せない状況です;