FLEXメモリ最適化テクニックセット


1. 削除対象が外部にあるすべての引用は必ず削除されなければなりません。2. 親のオブジェクトの内部のサブオブジェクトを外部の他のオブジェクトに引用した場合、このサブオブジェクトは削除されず、サブオブジェクトは削除されず、親のオブジェクトは削除されません。3. オブジェクトに外部のオブジェクトが引用されている場合、自分が削除されたり、この参照オブジェクトを使用する必要がない場合は、このオブジェクトの参照をnullに設定してください。4. この対象が削除できない原因は自分が引用されたとは限らないし、自分の子供が外部から引用されたという可能性もあります。子供が削除できなくて、父亲も削除できなくなりました。5. 引用は削除する必要がありますが、システムコンポーネントまたはグローバルツール、管理クラスは、アンインストール方法を提供したら、内部オブジェクトの削除を呼び出す必要があります。そうでないと、メモリ漏れとパフォーマンス損失を引き起こす可能性があります。6. 親オブジェクトはすぐに削除されます。サブオブジェクトを代表しないと削除されます。あるいはすぐに削除されます。後期にシステムによって自動的に削除されたり、二回目の削除操作で削除されたりします。7. 親オブジェクトが子オブジェクトを残した後、子オブジェクトの参照をクリアしていないと、子オブジェクトは同じように削除されません。親オブジェクトも削除されません。8. 登録されたイベントが削除されていない場合は、カスタムの強制回収メカニズムに影響を与えませんが、正常な回収メカニズムに影響を与える可能性がありますので、登録されたイベントモニターはすべて削除してください。9. 親オブジェクトが削除されましたが、その余剰オブジェクトが削除されたとは限りません。一つの状態を見つけた漏洩コードは他の状態と同じではないと漏れていません。各モジュールの状態をテストして、一つ一つテスト分析を行います。メモリ漏洩例:1. 引用漏えい:サブオブジェクトへの参照、外部からの本オブジェクトまたはサブオブジェクトへの参照はすべてnullにする必要があります。2. システムクラスリーク:システムクラスを使用して削除操作を忘れました。BindingUtils.bindSetter()のように、Change Watch.watch()関数を使用すると、ChangeWatch.unwatch()関数を呼び出して参照をクリアします。 ,この関数を使ったオブジェクトは削除されません。同様にMUSIC、VIDEO、IMAGE、TIMER、EVENT、BINDINGなどがあります。3. 効果漏洩:コンポーネントに効果Effectを適用する場合、本オブジェクトを削除する際には、本オブジェクトとサブオブジェクトのEffectアニメーションを停止し、Effectのtargetオブジェクトをnullにセットする必要があります。 アニメをやめないでそのまま Effectをnullにすると、オブジェクトを正常に取り除けません。4. SWFリーク:SWFを完全に削除するには、そのunload()を呼び出す方法と、オブジェクトをnullにセットします。5. 画像漏洩:Imageの対象が使用済みの場合はsourceをnullにセットする(テストのため6. サウンド、動画の流出: 音楽やビデオが必要でない場合は、音楽を停止し、対象を削除し、nullを参照してください。メモリリーク解決方法:1. セットのREMOVE D_FROMSTAGEイベントの返却中にゴミ処理操作(すべての対外参照を除去し(VOもコンポーネントも削除する必要があります)、モニターを削除し、システムクラスのクリア方法を呼び出します。先にremoveしてからnullを置きます。 removeまたはremoveAllされた後の対象が外部の引用で全て解放されることを確保する。2. Flexの性能最適化ツールProfileを利用してプロジェクトのプロセスを監視します。歴史がどのようなオブジェクトを作成したかを知ることができます。現在は削除されていません。作成された数、占有されたメモリの割合と使用量、作成過程などの情報があります。総括:肝心な点はやはり仕事を一掃することをしっかりと行って、自分で設定した引用は自分で削除することを覚えていて、自分で使ったことがあるシステム種類はしっかりと回収処理の仕事をしっかり覚えています。 以上の問題がうまく解決されれば、カスタム回収器が必要なくても、システムが正常に自動的に回収される可能性があります。