Как побороть OutOfMemoryError для пространства кучи Java? - PullRequest
1 голос
/ 29 февраля 2012

При обработке листа ODS с API JOpenDoc, получая OutOfMemoryError для пространства кучи Java. Лист обработки содержит 6000 записей. Согласно JProfiler, потребление памяти становится больше, если записей больше. Как избавиться от этой ошибки без увеличения размера JVM с аргументами -X. Вот мой код 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

1 Ответ

2 голосов
/ 29 февраля 2012

Вам нужно либо увеличить память с помощью -Xmx, либо уменьшить использование памяти.Например, вам нужно загрузить все 3 листа одновременно?Если нет, отпустите ссылку на него (например, sheet1 = null), и сборщик мусора позаботится об этом.

...