Как бороться с ошибкой «java.lang.OutOfMemoryError: пространство кучи Java»?JAVA

Программисты JAVA общаются здесь
Гость
Как бороться с ошибкой «java.lang.OutOfMemoryError: пространство кучи Java»?

Сообщение Гость »


Я пишу клиентское приложение Swing (графический дизайнер шрифтов) на Java 5. Недавно я столкнулся с ошибкой java.lang.OutOfMemoryError: Java heap space, потому что я не консервативен в использовании памяти. Пользователь может открывать неограниченное количество файлов, а программа сохраняет открытые объекты в памяти. После быстрого исследования я обнаружил, что Эргономика в виртуальной машине Java 5.0 и другие говорят, что на машине с Windows максимальный размер кучи JVM по умолчанию составляет 64 МБ.

Учитывая эту ситуацию , как мне справиться с этим ограничением?

Я мог бы увеличить максимальный размер кучи, используя параметр командной строки, чтобы java, но для этого потребуется выяснить доступную оперативную память и написать какую-нибудь запускающую программу или скрипт. Кроме того, увеличение до некоторого конечного максимума не окончательно избавит от проблемы.

Я мог бы переписать некоторые из мой код для частого сохранения объектов в файловой системе (использование базы данных — то же самое), чтобы освободить память. Это могло бы сработать, но, вероятно, это тоже большая работа.

Если бы вы могли указать мне на детали приведенных выше идей или некоторые альтернативы, такие как автоматическая виртуальная память, расширение кучи изменять динамический размер, это будет здорово.


Источник: https://stackoverflow.com/questions/373 ... pace-error

Вернуться в «JAVA»