2011-11-11 12 views
0

私は、Javaにはかなり新しいですので...ここに私と一緒に入力ストリームからメモリを解放しますか?

を負担する私は(= Class.class.getResourceAsStream("fileName.csv")である)InputStreamを読み取るためにスキャナを使用しています。ファイルが読み込まれると、メモリは約44,000で始まり、読み終わったら最大298,000になります。クラスは基本的にinputStreamを読み込んで、ArrayListsにデータを入れて、すばやく検索することができます。問題は..ファイルが読み込まれるとメモリ使用量がどのように低下​​するのかわかりません。私はobject = nullを設定しようとしました、そして/またはSystem.gc() {明らかに唯一の提案です}でもどちらも動作していません。私はScannerInputStreamの両方にclose()メソッドを使用していますが、これまでに何も機能していません。誰にでもアイデアはありますか?私はそれが可能だと思います私は何を話しているのか分かりません、そして、これはどうなるのでしょうか、私は間違ったことをしています。

ありがとうございます。

+0

もっとコードを表示できますか?あなたが読んでそれをarraylistsに保管しているのであれば、それは記憶を取るでしょう。その場合はブロック単位で読み込みます。 – excray

+0

基本的には、約400,000人の異なる顧客のCustomerオブジェクトのArrayListを作成しています。私はメモリを使用しているファイルではないかもしれないと思っていますが、私は本当に知るほどスマートではありません。 – TJones

+0

コードスニペットを投稿してください。 – r0ast3d

答えて

1

入力ストリームの使用が完了したら、その参照をnullに設定できます。これは、ガベージコレクタに未使用メモリを解放する唯一の方法です.GPを強制的に強制することはできないため、メモリを明示的に解放する方法はありません。

関連する問題