Компилятору GWT не хватает памяти. Как мне настроить его в IntelliJ?
Я использую GWT из IntelliJ. (Обычный GWT, IntelliJ v9). Я могу запустить свое приложение через свою конфигурацию "GWT development mode", но когда я пытаюсь запустить его через свою конфигурацию "local tomcat", я получаю кучу непонятных сообщений об ошибках, относящихся к Oracle и всяким странным вещам, которые Я не использую, а затем эту ошибку, которая сортируется в нижней части всех остальных:
Ошибка: недостаточно памяти; чтобы увеличить объем памяти, используйте флаг -Xmx при запуске (java -Xmx128M ...)
Я предполагаю, что эта ошибка является основной причиной.
Насколько я понимаю, есть этап компиляции GWT, который выполняется в JVM отдельно от IntelliJ и tomcat, и поэтому я не уверен, где установить параметр -Xmx.
Мой вопрос: где я могу найти этот параметр -Xmx? (И: нахожусь ли я на правильном пути, принимаю это сообщение об ошибке за чистую монету или это признак более глубоких проблем?)
5 ответов
Как только что сказал 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.