I have a Java Web application using Spring running on Tomcat 7.0. As the days go by, memory usage goes up slowly and does not go down much, although through VisualVM I realize that the GC runs frequently. But just by running the VisualVM GC by clicking the button, the application memory is actually released in large quantity. Why does it happen? I have tunning the application and it does not seem to be the case of memory leak, since the VisualVM GC frees memory. Any tips on how to improve this situation? Configuring GC by using Tomcat 8.0?