Servidor java cheio

Usando timer e timerTask, está fazendo várias verificações, e com isso, o servidor está ficando cheio.
Como posso fazer para desalocar a memória preenchida?

private Timer timer;
private Date d;
private final SimpleDateFormat sdfHora;
private final SimpleDateFormat sdfData;
private long dataAtual;
private long dataComecaEnviar;

public AgendamentoClassificacao() {
    this.timer = null;
    this.d = new Date();
    this.sdfHora = new SimpleDateFormat("HHmm");
    this.sdfData = new SimpleDateFormat("yyyyMMdd");
    this.dataAtual = 0;
    this.dataComecaEnviar = 0;
}

@Override
 public void contextInitialized(ServletContextEvent arg0) {
    
    System.out.println("==== SOFTWARE INICIALIZADO ====");
    
    timer = new Timer ();
    
    Calendar c = Calendar.getInstance();
    
    c.set(Calendar.HOUR_OF_DAY, 20); 
    c.set(Calendar.MINUTE, 00);
    c.set(Calendar.SECOND, 0);
    c.set(Calendar.MILLISECOND, 0);
    
    Date horaAgendada = c.getTime();
    
    long period = 86400000;

    dataComecaEnviar = 20180614;
    
    timer.scheduleAtFixedRate(new TimerTask() {
        public void run() {
            d = new Date();
            if ((sdfHora.format(d).equals("2000")) && (Long.parseLong(sdfData.format(d)) >= dataComecaEnviar)){
                enviaClassificacaoGeral();
            }
        }
    }, horaAgendada, period);
}

Cara, é complicado isso por várias questões:
“Servidor cheio” é um termo um tanto quanto exótico, parece usuário falando Godzila Giroflex (Firefox).
Oq está cheio? a memória ram física ou a memória da JVM? qnt de memória tem sua jvm?
Oq está enchendo esta memória? terá de encontrar o culpado.
Depois vc pode ver técnicas para otimizar.

Após as mudanças que fiz o código que mudei foi o que está acima daí o servidor java está ultrapassando os 100%

image

Descubra oq esta consumindo, pode usar profile, ajuda mto, mas precisa de paciência. Ou simplesmente aumenta a memória da jvm, pq 140mb tbm n dá pra nada.

Obs.: seu problema tbm pode estar dentro de enviaClassificacaoGeral();
Pode ser em qualquer coisa q tenha ligação com esta classe nova

Entendi… Esse profile ele é usado no próprio código java ?

Não, ele é da IDE, é uma espécie de depurador onde vc consegue visualizar consumo de recursos por objeto.

Okay vou procurar sobre isso então… Obrigado @Rodrigo_Void !