2010-12-07 10 views
0

my J2MEアプリケーションがJBLENDのメモリ不足例外を示しています。 JBEDでは正常に動作します。メモリを監視することで、document.parse(xmlParser)メソッドが多くのメモリを消費することに気付きました。私は、excellationの理由はメモリがXMLを解析した後に解放されないと思う。それは正しいですか?どうすれば問題を解決できますか?j2meアプリケーションがJBLENDのメモリ不足例外を示しています

答えて

1

何でも返りますが、すぐに不要になるとすぐに参照解除する必要があります。返されるオブジェクトを指すフィールドをnull(または間接参照を設定解除する)に設定する必要があります。

私はJBlendにまたはJBEDを使ったことがない、しかしWireless Toolkit respectively JaveME SDKはまた、あなたがメモリとオブジェクト参照の問題を追跡するのに役立ちます素敵なメモリプロファイラを持っています。

+0

私はdocument = nullとしてドキュメントをdereferncedしました。 document.parse(xmlParser)メソッドを呼び出した後。しかし、結果は同じです。私はメモリを解放するために何ができますか? – asifkt

+1

@asifkt:これは良い習慣ではありません。実際にはメモリが不足しているときに自動的に行われるべきですが、 'System.gc()'を呼び出すことによって 'document = null'を設定した後に強制的にガベージコレクタを実行できます。この点に関しては、[この記事はここに掲載されています](http://stackoverflow.com/q/899241/151299)と[JavaMEアプリケーションのメモリ管理に関するこれらの一般的なヒント](http://j2medevcorner.wordpress.com/2007/02/19/memory-management-in-j2me /)を参照してください。 –

+0

@ Oben:メモリを消費するメソッドの後にGCを呼び出しました。しかし例外発生頻度は増加する。 – asifkt

関連する問題