1

1920*1200 またはそれ以上の大きなビットマップを作成する必要がある場合、OOM の問題が発生します。DVM では 9MB のビットマップを割り当てられないというメッセージが表示され、プログラムがクラッシュすることがよくあります。

ただし、ビットマップを作成する前に DDMS を使用してプログラムをアタッチし、GC を強制すると、正常に動作します。

そこで、デコード スレッドで System.gc() を呼び出して、gc が発生するのを待つためにスレッドを強制的に 1 秒スリープさせようとしました。しかし、それは私が望んだようには決して起こりません。Gc は今でも独自の方法で機能しています。

それで、誰かがGCを強制的に発生させる方法を教えてもらえますか、またはこのケースに対処するためのより良い方法はありますか?

更新: DDMS を使用してプロセスにアタッチするだけで、GC がリアルタイムで実行されることがわかります。そして、それは非常にうまく機能しており、OOM はこれまでありませんでした。どうすればこの効果を達成できますか?

4

0 に答える 0