白鷺-キールアニメーションによるメモリオーバーフロー

メモリオーバーフロー:Egretで変数参照として定義されているため、インスタンスオブジェクトの参照カウントをクリアできません

その結果、メモリは時間とともに増加します

私の実際の戦闘プロジェクトでは、複数のキールアニメーションが使用されました。合計は3 * 20です。

プロジェクトが完了しました実際のテスト中に、メモリ消費量が約10Mから約150Mに増加し、FPSが低下し続けていることがわかりました

Chromeのメモリテストツールを使用する

↓これはデバッグ後の結果であり、デバッグが常に0になる前に削除されます(インスタンスオブジェクト参照がリサイクルされていないことを示します)

 

キールアニメーションインスタンスのメモリの削除:

公式ドキュメント:

 
 
クラス パブリッククラスEgretArmatureDisplay


dispose()メソッド
public dispose(disposeProxy:boolean):void 言語バージョン:すべての ランタイムバージョン:Web、ランタイム リリースプロキシおよびスケルトン。(スケルトンはオブジェクトプールにリサイクルされます) パラメーター disposeProxy:boolean —

実装:

vis.addDBEventListener(egret.Event.REMOVED_FROM_STAGE、()=> { 
    vis.dispose(); 
    this .visitors.splice(this .visitors.indexOf(vis)、1 ); 
})

最終結果は明白です:

 

おすすめ

転載: www.cnblogs.com/webfs/p/12703294.html