GCに期限を設定する方法はありますか?GCの時間制限を設定する/イベントの割り当てを削除する
私は、各イベントにいくつかの浮動小数点、整数、ロングを割り当てるゲームを書いていますので、GCを短時間(5〜20ms)コールしてそれらを削除することをお勧めします。次に、各ゲームループでGCを呼び出します。この方法は私の個人的なお気に入りです。私はまだ多くの努力を払わずにバックトレースすることはできません(私はすでにほとんどのものを削除しています)。
代わりに、私は他の割り当てを探して何らかの形でそれを防ぐだろうが、イベントでの割り当てを防ぐ方法が必要だ。ここで
は、必要に応じて割り当てトラッカーの結果です: http://textsave.de/?p=67220編集:私は本当に割り当てトラッカーで何かを見つけることができません 、すべてのオブジェクトは、これまでのjava-内部クラスオフ(でも痕跡のあるからです)。また、ガベージコレクタがfloat []を複数のオブジェクトとしてカウントしない限り、示されたオブジェクトは収集される数値の近くにありません。
誰でもこの問題がありますか?
どうすればよいですか?私が編集できないコードで作成されたオブジェクトのメモリを事前に割り当てますか?私はグーグルを見てきましたが、私は間違って検索する必要があります。 – SBoss
@SBoss: "編集できないコードで作成されたオブジェクトのメモリを事前に割り当てますか?"可能であれば、オブジェクト自体を事前に割り当てます。または、このコードをゲームで使用しないでください。従来のAndroidアプリケーションに適したプログラミング手法は、必ずしもゲーム開発には適していません。また、新しいAndroid搭載端末では、バックグラウンドスレッドでガベージコレクションが並行して行われるため、「世界を止める」ことはできません。 – CommonsWare
私のターゲットプラットフォームは2.1+ですので、選択できません。あなたはタッチイベントを読むための別の方法を知っていますか?どうにかしてonTouch(View、MotionEvent)コールはかなりのものを割り当てます。だから、私が今までに見たすべてのオブジェクトは、コードの背後に作成されています。私はそれが本当に私だけでないかどうかを調べようとし続けます。 – SBoss