как наилучшим образом создать java-объект для управления памятью?

#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 ГБ