Я знаю, что этот вопрос обсуждался несколько раз, но я не нашел решения своей проблемы:
Я резервирую 1024 МБ для виртуальной машины с
> параметры (java.parameters = "-Xmx1024m")
> библиотека (XLConnect)
xlcMemoryReport находит только около 15 МБ, а xlcFreeMemory не помогает (на самом деле иногда еще больше уменьшает доступную память)
> xlcMemoryReport()
Объем свободной памяти в виртуальной машине Java (JVM): 14,79472 МБ
> xlcFreeMemory()
> xlcMemoryReport()
Объем свободной памяти в Java Виртуальная машина (JVM): 15,05308 МБ
когда я пытаюсь загрузить файл размером 26 МБ, он терпит неудачу, но на самом деле освобождает память:
> res ‹- readWorksheet(loadWorkbook("bigFile.xlsx"),sheet=1)
ошибка при оценке аргумента "объект" при выборе метода для функции "readWorksheet": Ошибка: OutOfMemoryError (Java): куча Java пробел> xlcMemoryReport()
Объем свободной памяти в виртуальной машине Java (JVM): 947,3003 МБ> res ‹- readWorksheet(loadWorkbook("bigFile.xlsx"),sheet=1)
ошибка при оценке аргумента "объект" при выборе метода для функции "readWorksheet": Ошибка: OutOfMemoryError (Java): куча Java пробел> xlcMemoryReport()
Объем свободной памяти в виртуальной машине Java (JVM): 936,7464 МБ.
- Почему xlcMemoryReport сначала не находит зарезервированную память, но находит ее после того, как я пытаюсь прочитать файл?
- Возможно ли, что> 900 МБ недостаточно для XLConnect для загрузки файла размером 26 МБ?
- Любая идея, как я могу сделать эту работу? (конечно, я мог бы использовать файлы CSV, но это неудобно для моих пользователей)