Как контролировать память в приложении Spring + Tomcat? - PullRequest
3 голосов
/ 20 июня 2011

У меня есть приложение Spring, которое я хочу оптимизировать, оно использует много памяти, было хорошо, когда его использовали немногие, но цифры немного уменьшились, и я понятия не имею, с чего начать.Есть ли способ узнать, какой класс и методы используют какие ресурсы?

Ответы [ 2 ]

2 голосов
/ 20 июня 2011

Лучший способ начать с этого - использовать профилировщик. Есть много продуктов там. Мне лично нравится YourKit . Это вопрос предпочтений. Используя профилировщик, вы можете легко узнать количество созданных экземпляров классов в коде. Возможно, у вас просто утечка памяти.

В общем, я думаю, что это хорошая идея - настроить ваш сервер приложений / контейнер сервлетов так, чтобы их внутренние компоненты были доступны через JMX . Вам просто нужно включить агент JMX , установив параметры запуска JVM. Затем вы можете подключиться к вашему серверу и отслеживать потребление ресурсов процессора и памяти, используя JConsole или VisualVM . VisualVM предоставляет простой плагин для профилирования.

1 голос
/ 20 июня 2011

Я думаю, JMX будет хорошим началом.Используя поддержку Spring JMX, вам будет очень легко настроить bean-компоненты для интеграции с JMX.

http://static.springsource.org/spring/docs/3.0.5.RELEASE/reference/jmx.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...