У меня есть приложение ATG Dust. Чтобы проверить приложение ATG, я связал свое приложение ATG с программой Dust Application, щелкнув правой кнопкой мыши на приложении Dust → Path Path → Source Source → Select my ATG App. Приложение ATG - большое приложение. Когда я пытаюсь очистить сборку приложения DUSt, я получаю исключение, подобное "Исключение из памяти". Обратитесь к разделу "Запуск Eclipse"..... "
В файле eclipse.log записано следующее исключение:
// From the Log File
!ENTRY org.eclipse.core.jobs 4 2 2014-03-27 06:56:26.549
!MESSAGE An internal error occurred during: "Launching SampleTest".
!STACK 0
// Exception
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Unknown Source)
at java.lang.String.<init>(Unknown Source)
просто щелкните правой кнопкой мыши на своем файле в eclipse и выберите "Запустить как" → "Запустить конфигурацию". Откроется диалоговое окно "Диалоговое окно" Выполнение конфигураций ". Нажмите" Вкладка "Аргументы"
Введите это значение
-Xms1024m -Xmx3072m -XX:MaxPermSize=1024M
В Vm Аргументы и пресса
Проблема с памятью - это то, что происходит из-за неправильного обращения с кучей. Вы должны оптимизировать код, чтобы этого избежать. В качестве временного исправления вы можете увеличить кучу пространства.
-XX:MaxPermSize=512m
-Xms512m
-Xmx1024m
Как сказал Дилип, проблема, возможно, в неправильной обработке кучи.
Увеличенная кучка может не решить проблему, но немного поработайте над ней. Вы можете установить параметр -XX:+HeapDumpOnOutOfMemoryError
в вашем eclipse.ini
. Это напишет heapdump, который можно проанализировать с помощью таких инструментов, как Eclipse Memory Analyzer. Попытайтесь убедиться, что у вас нет утечки памяти, прежде чем использовать больше места.
в вашем случае java.util.Arrays.copyOfRange
копирует части массивов. вы можете начать с проверки того, какой размер они являются.