2

オブジェクトを送受信するために2つのスレッドを持つクライアント/サーバーペアを作成しました。最初は正常に実行されますが、しばらく実行するとOutofMemoryエラーが発生しますが、Android2.3でガベージコレクターがどのように機能するかを調べていました。 .4そして、いくつかのオブジェクトは、ObjectInputStreamとObjectOutputStreamによってGCによって収集されないように保持されているようです。Eclipseのメモリ分析ツールを使用してメモリリークがどこにあるかを調べたところ、送受信されるデータへの参照を保持するIdentityHashMapオブジェクトがあることがわかりました。このデータを解放する方法、またはこのオブジェクトがデータに保持している参照を削除してデータが収集されないようにする方法について、この問題を回避する方法を見つけたいと思います。私が使用しているメモリヒープは、携帯電話64Mとしてはかなり大きいです。

4

1 に答える 1

0

Q:いつでも「reset()」を実行していますか?

オブジェクトストリームは、リセットしない限り、書き込まれたすべてのオブジェクトを記憶します。

于 2013-03-06T22:32:00.967 に答える