10

アプリケーションを実行しているときに、次のメッセージが毎回表示されるのはなぜですか。アプリを実行しているときにAndroid Logcatに常にGC_CONCURRENT FREEDとGC_CONCURRENT ALLOCATEが表示されるのはなぜですか?

12-11 17:18:37.141: D/dalvikvm(3155): GC_CONCURRENT freed 485K, 9% free 6696K/7303K, paused 9ms+335ms

paused 9ms+335msによりこれに私は私のコードごとに、それはので、ここでそれが10 timesデータ損失

ある9ms+335msのために一時停止したオーディオデータごと40msを受け取るので、不足しているプレーすることになって私のオーディオを一時停止ガベージコレクションの実行を知っていますが、私の質問はなぜそれが頻繁にlogcatに付属しています。

ありがとうございました!!!!!!

+0

どのようなタスクが実行していますか? –

+0

オーディオレコードを再生して再生する –

+0

アプリケーションのメモリ情報を表示するシステムログです。 –

答えて

14

ガベージコレクションは、クラスによって参照されなくなり、コードからアクセスできないオブジェクトを削除してメモリを使い果たしないようにするために、Javaによって使用されます。

これらのオブジェクトが多すぎると、GCの呼び出しが多く発生し、パフォーマンスに影響することがあります。一方、常に参照されているオブジェクトを持つと、GCが呼び出されるのを防ぐ(メモリリーク)ことがあり、メモリがいっぱいになり、OutOfMemoryExceptionが発生する可能性があります。

あなたの目標は、GCを排除することではなく、遅延に敏感で、UIスレッド(例えばonDraw()getView()、...など)で実行されているメソッドでできるだけそれらを減らすことです。

+0

私は私の質問を編集してくれて、それを見て、私に解決策を教えてください –

+0

オブジェクト定義を最小限に抑えてGCを最小限に抑えます。これらのオブジェクトを見つけるのに役立つオーディオを再生するコードを表示する必要があります。 –

4

これはAndroidの正常な動作です。電話はガベージコレクションだけです。 詳しくチェックアウトに関しては、この上の偉大なGoogleのI/Oビデオ: Google I/O 2011: Memory management for Android Apps

+0

私は自分の質問を編集しました。それを見て、私に解決策を教えてください –

+0

あなたは本当にあなたのコードの最適化をチェックする必要があります。あなたのコードのようなサウンドは、あまりにも多くのGCを必要とします。 –

関連する問題