В настоящее время я работаю над GUI-приложением с javafx, которое отображает содержимое некоторых файлов Excel (всего около 3 МБ). Я использую apache POI
для загрузки данных файла Excel, которые я затем сохраняю в некоторых пользовательских объектах.
Если я запускаю приложение из Eclipse, все работает нормально. Если я создаю его как .jar
с Maven, я получаю ошибку out of heap
, и мне нужно установить -Xmx512M
, чтобы приложение работало без сбоев.
Я только что заметил, что моя программа занимает 1 ГБ оперативной памяти, работающей в затмении, и около 580 МБ, работающих в качестве jar с настройкой, указанной выше.
Я не знаю, почему моей программе требуется так много оперативной памяти, хотя в действительности она содержит всего 3 МБ фактической информации.
Я даже использую метод file из apache POI
, чтобы уменьшить потребление памяти:
final URL path = this.getClass().getClassLoader().getResource(filename);
final File f;
if(path.getPath().contains(".jar"))
f = new File(filename);
else
f = new File(path.getFile());
final Workbook workbook = WorkbookFactory.create(f);
...