Компилятору GWT не хватает памяти. Как мне настроить его в IntelliJ?

Я использую GWT из IntelliJ. (Обычный GWT, IntelliJ v9). Я могу запустить свое приложение через свою конфигурацию "GWT development mode", но когда я пытаюсь запустить его через свою конфигурацию "local tomcat", я получаю кучу непонятных сообщений об ошибках, относящихся к Oracle и всяким странным вещам, которые Я не использую, а затем эту ошибку, которая сортируется в нижней части всех остальных:

Ошибка: недостаточно памяти; чтобы увеличить объем памяти, используйте флаг -Xmx при запуске (java -Xmx128M ...)

Я предполагаю, что эта ошибка является основной причиной.

Насколько я понимаю, есть этап компиляции GWT, который выполняется в JVM отдельно от IntelliJ и tomcat, и поэтому я не уверен, где установить параметр -Xmx.

Мой вопрос: где я могу найти этот параметр -Xmx? (И: нахожусь ли я на правильном пути, принимаю это сообщение об ошибке за чистую монету или это признак более глубоких проблем?)

5 ответов

Решение

Вы можете настроить кучу в настройках фасета GWT:

GWT Facet Heap

Как только что сказал CrazyCoder, вы можете увеличить объем памяти для компилятора gwt в настройках GWT Facet. Компилятору GWT не хватает памяти в больших приложениях очень часто, если вы не увеличиваете объем памяти. Большинство проектов должно быть хорошо с 512 м, но на больших проектах мне уже нужно было больше памяти.

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

В моем приложении я установил его на 1024, но он высвобождает память после обновления 7-9 страниц в режиме разработки. И после этого я попытался оптимизировать его, сделав хак производительности, я отделил свой *.gwt.xml для каждого модуля gwt для определенных браузеров, установив:

MySampleModule_FF.gwt.xml

<set-property name="user.agent" value="gecko1_8"/>

И я запускаю свой режим разработки с этим gwt.xml для Firefox. В дополнение к этому также отделена интернационализация.

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

Тем, кто получает ту же ошибку в Eclipse, попытайтесь восстановить файлы кэша (если они были случайно удалены в папке WAR), таким образом я решаю ту же проблему в своем проекте Eclipse.

32-битный JDK также иногда вызывает ошибку Out Of Memory. Попробуйте использовать 64-битный JDK.

Другие вопросы по тегам