1
JOpenDoc APIを使用してODSシートを処理しているときに、Javaヒープ領域用にOutOfMemoryErrorを取得しています。処理シートには6000件のレコードが含まれています。 JProfilerごとに、レコードが多いほどメモリ空間を消費します。 -X引数でJVMサイズを増やさずにこのエラーを取り除く方法。ここでは、outofmemoryを引き起こしている私のJavaコードです。Javaヒープ領域のOutOfMemoryErrorを克服するにはどうすればよいですか?
SpreadSheet spreadSheet=SpreadSheet.createFromFile(new File("document.ods")); //memory-35 MB
Sheet sheet1=spreadSheet.getSheet(1); // consumed memory - 47 MB
Sheet sheet2=spreadSheet.getSheet(2); // consumed memory - 59 MB
Sheet sheet3=spreadSheet.getSheet(3); // outofmemory error since the default size is 64 MB
-Xフラグを使用しない理由はありますか? – Jason
um、すべてのメモリを使用して停止しますか? JVMが利用できるメモリを必要なものに増やすことを拒否すれば、それはあなたのもう一つの選択肢です。一度に1つの「シート」のみを処理します。 –
@ Jason:シートレコードが徐々に増加する可能性があるので、はい。その場合、割り当てられる固定ヒープメモリはありません。レコード数が多いほどヒープメモリーが増えていると私は言っていました。 – hemanth