私はapache pio version 3.14を使っていくつかのデータをExcelにエクスポートしています。問題は、それが多くのメモリを使用することです。 VisualVMを使用すると、oldgenのデータが約80M〜約400Mの範囲で800Kのエクスポートファイルを作成し、そこにとどまることに気付きました。何度も何度も操作を繰り返しても、それは成長し続けます。 XSSFWorkbookは決してガベージコレクトされておらず、Excelファイルからすべてのセル/シートの参照を保持しているようです。 SXSSFWorkbookを使ってみましたが、メモリ使用量は似ています。 メモリ使用量を減らす方法はありますか?または、XSSFWorkbookをどのように処分できますか?私はワークブックを閉じて、nullへの参照を作ろうとしましたが、これは助けになりませんXSSFWorkbookはメモリに残ります
0
A
答えて
0
今日私は私たちのアプリケーションで同じ問題を見ました。すべてのセルを含むブックは古い世代にあり、決して削除されません。問題を分析するために、各行に10個のセルがある10行のブックを作成するアプリケーションを作成しました。
その後、私は別のスレッドにコードを移動しようとしました。
は、まだいくつかのオブジェクトは、行とセルがなくなっている、メモリが、ワークブック、シートに残ります。ここではのコードサンプルを簡略化してテストしました。
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
Workbook workbook = null;
FileOutputStream fileOutputStream = null;
try {
workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet();
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("test");
fileOutputStream = new FileOutputStream(new File("/tmp/workbook.xlsx"));
workbook.write(fileOutputStream);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (workbook != null) {
try {
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();
// Infinite loop to monitor with visualvm
for(;;);
}
+0
サンプルコードを追加して、これがどのように見えるかを説明できますか? – mjk
関連する問題
- 1. コンストラクタXSSFWorkbook(FileInputStreamには)
- 2. 終了時にプログラムがメモリに残ります
- 3. C++ wxWidgets Gui-Appを閉じるとメモリに残ります
- 4. ファイナライズハンドルがメモリに残ります。このリファレンスを削除するには?
- 5. WCFメモリの残りの問題
- 6. XSSFWorkbook作成エラー
- 7. c#XSSFWorkbook読み取り不能なコンテンツ
- 8. document.createElementで作成された要素はメモリに残りますか?
- 9. PHPでphp_value auto_prepend_fileはどのように動作しますか?それは常にメモリに残りますか?
- 10. layout_weight必要なだけ正確に1つのアイテムに残り、残りのアイテムはすべて残ります
- 11. MainWindowが閉じられた後でもQtアプリケーションがメモリに残ります
- 12. COM Interopコンポーネントがメモリに残る
- 13. kerv-dnsは「ContainerCreating」に残ります
- 14. XSSFWorkbookのカラーパレットへのアクセス
- 15. XSSFWorkbookはEXCELファイルを共有しています
- 16. 残りのAPIのためにRモデルをメモリに保持する
- 17. Apache POIを使用してbyteArrayをXSSFWorkbookに変換します。
- 18. xssfworkbook npoiを使用してRGBカラーを設定するには
- 19. 残りは
- 20. は残り火
- 21. 春。残りは
- 22. RDDはどれくらいの期間メモリに残っていますか?
- 23. 投稿されたフォームデータはメモリに残る
- 24. ドッカーサービスのレプリカは残ります0/0
- 25. アプリがバックグラウンドのときにFirebaseリスナをメモリに残す
- 26. 残業日数は残り少ない
- 27. Xamarin.formsイメージは残りのAPIになります
- 28. 投稿後のページに残ります
- 29. 同じタブに残ります
- 30. ユーティリティアプリケーション情報ボタントップに残ります
高価な場合は、それを自分で行います。 – RayanFar
コードスニペットを入力してください。 –