11

アプリケーションの実行中に毎回以下のメッセージが表示される理由を知りたいです。

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

paused 9ms+335msこの一時停止により、再生するはずのオーディオが欠落しています。これは、私のコードによると、オーディオデータを毎回受信する40msためです。ここで一時停止し9ms+335msたのは10 timesデータ損失です

ある種のガベージコレクションを実行していることは知っていますが、私の質問は、なぜログキャットに頻繁に来るのかということです。

助けてくれてありがとう!!!!!!

4

3 に答える 3

15

ガベージ コレクションは Java によって使用され、どのクラスからも参照されなくなり、コードから到達できないオブジェクトを削除することで、メモリ不足になるのを防ぎます。

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

あなたの目標は、GC を排除することではありませんが、遅延の影響を受けやすく、UI スレッドで実行されているメソッド (たとえばonDraw()、 、 ... など)で GC を可能な限り削減することです。getView()

于 2012-12-11T12:37:49.203 に答える
4

これは Android の正常な動作です。電話はガベージコレクションを行うだけです。詳細については、次の優れた Google I/O ビデオをチェックしてください: Google I/O 2011: Android アプリのメモリ管理

于 2012-12-11T13:28:45.997 に答える
1

皆さん、メモリ管理に関連するこれらのドキュメント/リンクをチェックしてください。

http://static.googleusercontent.com/media/www.google.com/en//events/io/2011/static/presofiles/memory_management_for_android_apps.pdf

http://eclipse.org/mat/

http://therockncoder.blogspot.in/2012/09/fixing-android-memory-leak.html

于 2013-12-20T10:50:30.630 に答える