1

JOpenDoc API で ODS シートを処理しているときに、Java ヒープ領域の OutOfMemoryError を取得します。処理シートには 6000 レコードが含まれています。JProfiler によると、レコードが多いほど消費するメモリ スペースが多くなります。-X 引数を使用して JVM サイズを増やさずにこのエラーを回避する方法。これは、メモリ不足を引き起こしている私の Java コードです。

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
4

1 に答える 1

2

-Xmx でメモリを増やすか、メモリ使用量を減らす必要があります。たとえば、一度に 3 枚すべてのシートをロードする必要がありますか? そうでない場合は、それへの参照を解放し (例: sheet1 = null)、ガベージ コレクターがそれを処理します。

于 2012-02-29T03:07:10.893 に答える