При обработке листа ODS с API JOpenDoc, получая OutOfMemoryError для пространства кучи java. Лист обработки содержит 6000 записей. Согласно JProfiler, потребление памяти становится больше, если записи больше. Как избавиться от этой ошибки, не увеличивая размер JVM с аргументами -X. Вот мой код Java, который вызывает outofmemory.Как преодолеть OutOfMemoryError для пространства кучи 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
Есть ли причина избежать использования флагов -X? – Jason
Ум, перестань использовать всю память? Если вы откажетесь увеличить память, доступную JVM, к чему-то, что вам нравится, это ваш другой вариант. Только иметь дело с одним «Листом» за раз. –
@ Джейсон: Да, поскольку листы могут увеличиваться постепенно. в этом случае фиксированная память кучи не назначается. Как я сказал вам, что память кучи увеличивается, если количество записей больше. – hemanth