Bitte sagen Sie mir den Zweck dieser Optionen. Nach dem googeln denke ich: MinHeapFreeRatio gibt an, dass "der angegebene Mindestprozentsatz des Speicherplatzes nach einem GC frei im Heap-Speicher ist" und MaxHeapFreeRatio gibt an, dass "nicht mehr als der angegebene Prozentsatz an Speicherplatz im Heap-Speicher nach einem GC frei ist" [Wenn mehr als der angegebene Prozentsatz an freiem Speicher verfügbar ist, wird dieser Speicher an OS zurückgegeben]
Wenn ich diese Optionen mit 10 als Wert für beide ausprobierte, auch wenn es mehr als 80 Prozent freien Heap-Speicher gibt, wurde es nicht wieder auf OS freigegeben.
Details: Java HotSpot (TM) 64-Bit-Server-VM (1.5.0_15-b04, gemischter Modus) ParallelGC (sonst als Durchsatzkollektor bekannt, der der Standardkollektor in der Serverklasse VM ist) Ich habe -Xms50M und -Xmx1000M als jvm Argumente angegeben Betriebssystem: Windows 7 Professional (8 GB Speicher 64 Bit OS)
Hinweis: Ich habe gerade auch mit SerialGC versucht, diese Min- und Max-Heap-Free-Ratio-Optionen wurden ignoriert.
Java gibt den Speicher sehr selten an das Betriebssystem zurück. Im Allgemeinen verwenden Anwendungen im Laufe der Zeit mehr Speicher als weniger. Sind Sie sicher, dass Ihr Gedächtnis so begrenzt ist, dass Sie das brauchen? Sind Sie sicher, dass Sie den residenten Speicher überprüfen, nicht die Größe des virtuellen Speichers, die in Ihrem Fall die ganze Zeit über 1,2 GB beträgt.