#java #spring #spring-mvc #object
#java #spring #spring-mvc #объект
Вопрос:
Я использую JAVA / Spring MVC, и мне нужно создавать объект (клиентского класса) при каждом нажатии пользователей, и у меня около 500 пользователей.
здесь у меня возникает проблема, когда пользователи начинают вызывать мою память кучи (объем оперативной памяти) увеличивается и становится 100%, а приложение замедляется? здесь я создаю объект ‘Client Class’, показанный ниже..
public class ClickToCallServiceImpl implements ClickToCallServiceInterface {
Client client = null;
@Override
public ClickToCall callGenerationService(ClickToCall clickToCall) {
client = new Client();
client.connect("ip_address", port , "password", connectiontimelimit);
......................
......................
client.close()
}
}
выше (используемый мной) лучший вариант или ниже 2 вариантов создания объекта? ….
1.) public class ClickToCallServiceImpl implements ClickToCallServiceInterface {
@Override
public ClickToCall callGenerationService(ClickToCall clickToCall) {
Client client = new Client();
......................
......................
client.close()
}
}
(OR)
2.) public class ClickToCallServiceImpl implements ClickToCallServiceInterface {
Client client = new Client();
@Override
public ClickToCall callGenerationService(ClickToCall clickToCall) {
client.getContact_number();//etc
......................
......................
client.close()
}
}
и здесь ‘ClickToCall’ — это класс @Component Bean / POJO с установщиками и получателями переменных.
Есть ли какой-либо наилучший способ создать объект, для которого не охвачено 100% оперативной памяти? Заранее спасибо и приветствую ваши новые предложения.
Комментарии:
1. Сколько оперативной памяти у вас на сервере? каков предел размера кучи? (очевидно, что предел кучи должен быть ниже объема оперативной памяти, имеющейся в вашем распоряжении).
2. Сначала проверьте настройки JVM и спецификацию сервера. Во-вторых, возможно, ваш клиентский класс просто слишком тяжелый или медленный. Похоже, подключитесь к чему-нибудь. Как и пул соединений с БД, почему бы вам не реализовать клиентский пул (connection) и не поделиться им?
3. да, @lv0gun9 мой клиент подключается к стороннему приложению. можете ли вы дать подсказку о том, как реализовать пул клиентских подключений и поделиться им? и спасибо за ваш комментарий.
4. Привет @MauricePerry у меня 4 ГБ оперативной памяти, а моя максимальная куча составляет 3 ГБ и используется 3 ГБ.
5. @SushilKumar этого может быть слишком много. Попробуйте уменьшить его до 2 ГБ или 1,5 ГБ