Llamar al GC no significa que vaya a liberar memoria, lo intentará pero no garantiza nada.
Llamarlo repetidamente es inutil, por que lo que no libere en una vez o dos, no lo va a liberar en x-cientas.
Precisamente, seguramente el problema de rendimiento que tengas sea que la JVM se esta quedando sin memoria y el GC se esta ejecutando demasiadas veces liberando memoria que luego se vuelve a quedar justa etc. Así que si va lento por eso, imaginate si lo llamas encima mas
. La solución es bajar los requerimientos de memoria o asignar más memoria a la JVM.
S!