2009-05-14 2 views
0

Мы разработали приложение Groovy. В стадии разработки для его запуска мы используем следующую командуЗапуск высококачественного приложения под Maven

C:\myapp>mvn grails:run-app 

без отправки запроса на сервер можно видеть, как память, используемая в процессе Java в увеличении и растет. Когда он начинается со скоростью около 100 М, выделяются и через пару часов - без учета чего-либо - память достигает 300 М.

Когда я запуск приложения непосредственно

C:\myapp> grails run-app 

память потребляет несколько отличается, без отправки запроса он какой-то образом стабилизированный в 110M. Иногда поднимается, иногда падает.

Хотя 300M не критично, я хотел бы знать, если это утечка памяти или нет.

Есть ли у кого-нибудь подобные действия?

Спасибо!

ответ

0

Это может быть утечка памяти в Maven, но, скорее, утечка в grails: команда run-app. Я бы предложил разместить это в списке рассылки разработки Grails.

Почему это вас беспокоит? Вы должны использовать эти команды только для разработки, а не для производства, поскольку вы будете развертывать военный файл на производстве. Если вас просто беспокоит, список рассылки разработчиков Grails определенно является местом для чего-то подобного.

0

Уверен, что здесь есть утечка памяти.

Это нормально для JVM, чтобы ждать выполнения полного GC до тех пор, пока это не произойдет. Это означает, что если вы выделите больше памяти, ваш java/groovy-процесс будет с удовольствием использовать его.

Скорее всего, у вас есть разные настройки памяти по умолчанию для Maven vs Grails. Я не уверен, как именно эти свойства установлены в окнах, но они выглядят что-то вроде:

GRAILS_OPTS = "- Xms100m -Xmx110m"

MAVEN_OPTS = "- Xms100m -Xmx300m"