2012-05-04 5 views
0

私はPlayN-gameをブラウザで実行しています。私のタスクマネージャーで私はどのようにGoogle ChromeやFirefoxのメモリが最大512 MBになっているのを参照してください。playnで正しくクリーンアップするには

おそらく理由は、私がプレーンで使用するすべての要素をクリーンアップして破壊しないということです。 GarbageCollectorが私のためにJavaでそれをやっていたので、私は何も整理しなかったし、HTML5で問題を起こすことを考えなかった。

だから、使用した後にすべてのもの(IFaces、レイヤー、イメージ...)をクリーンアップする最も簡単な方法は何ですか?

ifaceまたはトップレイヤーを破壊するだけで、PlayNがすべてのサブエレメントを破壊することはできますか? ImageLayerを破壊すると、元のイメージが破壊されていない可能性があります。

不特定の質問に申し訳ありません。私はそれの一般的な概念とベストプラクティスを理解する必要があります。

答えて

1

あなたが行う必要があるのは、もはや必要のないオブジェクトへの参照を保持しないことだけです。ガベージコレクションは残りの部分を処理します。

Layer.destroyに電話をかけると、GPUメモリの解放が高速になる可能性がありますが、ハンドルがガベージコレクションされると解放される可能性もあります。 TriplePlay UIでは、Interface.destroyRootはUIからルートを削除します(これはインタフェースを保持し、ルートは必要なくなった場合に行う必要があります)、ルートのレイヤを破棄します。

問題が発生している可能性がありますが、HTMLバックエンドは現在、ゲームの生涯にわたってすべてのアセットをキャッシュしています。したがって、多くのイメージやその他のデータを読み込むと、最終的には多くのブラウザメモリが使用されます。与えられた画像は何度も読み込まれませんが、おそらくあなたのゲームにはたくさんの画像があります。

私はこのキャッシュを変更する予定です(次回のPlayNリリースの前にそうしているかどうかは関係ありません)ので、キャッシュする必要がある場合は自分でイメージをキャッシュする必要があります。必要なときにそれらを解放することもできます。

関連する問題