2013-07-04 9 views
6

JSフレームワークを使用してAndroidゲームを開発しています。私はそれらのオブジェクトを使用してオブジェクトの一部がガベージコレクションされていることを確認したい。どのように私はそれを強制するのですか? nullを使用するか、定義されていませんか?Javascriptの変数にガベージコレクションを強制したい場合は、nullまたはundefinedとして設定する方が良いでしょうか?

+0

最近GCを正しく作成しないJSを書くのは難しいです。ご心配なく。オブジェクトを処理したら、それらはガベージコレクションされます。そうでない場合は、JSランタイムのバグです。最悪の場合、これは最適化段階で処理するものですが、アーキテクチャには影響しません。 –

答えて

8

強制的にガベージコレクションを実行することはできません(元気な方法ではありません)。

変数が自動的に有効範囲外にならない場合は、nullに設定してください。

+4

どうも狂気のように、私はここで絶望的です。 –

+0

@EricWooley非常に難しいのは、1トンのメモリの割り当てを開始してGCをトリガすることですが、この割り当てによって無意味になります。 – alex

+0

必ずしも500MB以上のブロブデータを使用することを妨げるクロムバグがあります。https://code.google.com/p/chromium/issues/detail?id=375297 だから私は500MBのブロブを書く必要があります。私が書いたブロブを消去するためにgcを起動し、別の500mbのブロブデータをロードして書き出します。私はクロムがBLOBデータのGCを別々に扱うと思うので、これは役に立たないかもしれませんが、ショットに値するかもしれません。 –

5

ガベージコレクションの対象となる範囲で定義することをお勧めします。つまり、決して収集対象にならないグローバル変数は使用しないでください。代わりに地元の人として宣言してください。

関連する問題