62 Stimmen

Gibt es eine Möglichkeit, den Java-Heap zu verringern, wenn er nicht benutzt wird?

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:

Java program memory usage

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!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X