Ich arbeite zur Zeit an einer Java-Anwendung und versuche, deren Speichernutzung zu optimieren. Soweit ich weiß, halte ich mich an die Richtlinien für eine ordnungsgemäße Garbage Collection. Es scheint jedoch, dass mein Heap auf seiner maximalen Größe zu sitzen scheint, obwohl er nicht benötigt wird.
Mein Programm führt einmal pro Stunde eine ressourcenintensive Aufgabe aus, wenn der Computer nicht von einer Person benutzt wird. Diese Aufgabe verbraucht einen ordentlichen Teil des Speichers, gibt ihn aber sofort nach Beendigung der Aufgabe wieder frei. Der NetBeans-Profiler zeigt, dass die Speichernutzung wie folgt aussieht:
Ich würde gerne den gesamten Heap-Speicherplatz an das Betriebssystem zurückgeben, wenn er nicht gebraucht wird. Es gibt keinen Grund für mich, ihn ganz in Anspruch zu nehmen, während das Programm noch mindestens eine Stunde lang nichts tut.
Ist dies möglich? Danke!