Потребление памяти для веб-приложения java (300 МБ слишком высоко?) - PullRequest
5 голосов
/ 06 марта 2012

Могу ли я выбрать ваши мозги по поводу проблемы с памятью?

Мое Java-приложение, которое невелико (например, 14000 LOC), использует около 300 МБ памяти. Он работает на Tomcat с базой данных MySQL. Я использую Hibernate, Spring и Velocity.

Кажется, что нет утечек, потому что он стабилизируется и 300 МБ, без дальнейшего роста. (Кроме того, я провел некоторое профилирование.) Однако моя команда была обеспокоена количеством места, которое она использует. Это кажется высоким. Есть ли у вас какие-либо предложения о способах его сокращения?

Любые мысли приветствуются.

Джо

Ответы [ 4 ]

4 голосов
/ 06 марта 2012

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

300 МБ не особенно велико для серверного приложения, которое кэширует данные, но несколько больше для приложения, которое не содержит никаких типов кэшированных или сеансовых данных (но, поскольку это включает сам веб-сервер, обычно 300 МБ разумно) .

2 голосов
/ 06 марта 2012

Количество кода (LOC) редко оказывает большое влияние на использование памяти вашим приложением, в конце концов, именно хранимые переменные и объекты занимают большую часть памяти.Для меня 300 мегабайт звучит немного, но, конечно, это зависит от вашего конкретного сценария использования:

  • Сколько памяти имеет рабочий сервер?
  • Сколько пользователейтам с таким количеством используемой памяти?
  • Насколько увеличивается использование памяти за сеанс пользователя?
  • Сколько пользователей вы ожидаете, что одновременно получит доступ к приложению впроизводственное использование?

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

0 голосов
/ 06 марта 2012

Если вам нужно уменьшить площадь, по крайней мере, убедитесь, что вы используете Velocity 1.6 или выше.1,5 потратили немало памяти.

0 голосов
/ 06 марта 2012

Я не могу давать никаких обещаний, но я не думаю, что вам нужно беспокоиться. Мы запускаем несколько веб-приложений через Glassfish, также используя hibernate, и каждое из них использует около 800-900 МБ в dev, часто будет работать 2 домена каждого размера.

...