Java-Speicher für das Betriebssystem zur Laufzeit freigeben.

Angenommen, ich habe eine Swings-Java-Anwendung, ich stelle den minimalen Heap auf 64 MB und den maximalen Heap auf 2 GB ein. Wenn der Benutzer die Anwendung startet, wird der Anmeldebildschirm angezeigt. Zu diesem Zeitpunkt verwendet die App 64 MB. Unter Windows 7 kann ich sehen, dass der Java-Anwendung vom Speicherressourcen-Monitor des Betriebssystems 64 MB zugewiesen werden (tatsächlich sind es mehr als 64 MB, da die JVM für ihre Aufgabe etwas Speicher benötigt).

Danach erledigt der Benutzer einige sehr schwere Arbeit, dann verwendet die Anwendung 2G. Anschließend meldet der Benutzer die Anwendung ab, und der Anmeldebildschirm wird erneut angezeigt (die Anwendung ist noch nicht geschlossen). Zu diesem Zeitpunkt belegt der reale Speicher der Anwendung 64 MB (angenommen, dies ist die perfekte Speicherverwaltungsanwendung), aber mit dem Betriebssystem, das diese Anwendung immer noch 2 GB RAM verwendet, kann ich dies auf dem Ressourcenmonitor des Betriebssystems anzeigen.

Ich möchte, dass meine Anwendung den Speicher für das Betriebssystem freigibt, wenn kein großer Speicher benötigt wird. Kann ich das zur Laufzeit mit der Java App machen?

Ich meine, wenn meine Anwendung 64 MB RAM verwenden muss, dann gibt das Betriebssystem nur 64 MB, wenn es 2 GB RAM benötigt, dann gibt das Betriebssystem 2 GB, danach 64 MB RAM, dann gibt das Betriebssystem nur wieder 64 MB Ich möchte nicht, dass es 2000 MB - 64 MB = 1936 MB verschwendet.

Kann ich das machen?

Vielen Dank,

Antworten auf die Frage(3)

Ihre Antwort auf die Frage