Zum Beispiel, wenn ich einfache Spring Boot-App von IDE ohne Definitionen ausführen/debuggen, welche Größe der anfänglichen Heap-Größe, Max. Heap-Größe und Stack-Größe (-Xms, -Xmx, -Xss) gesetzt werden?Wie lauten die Standardspeichereinstellungen für den Spring Boot?
Antwort
Standardmäßig verwendet die Spring Boot-App JVM-Standardspeichereinstellungen.
Standard-Heap-Größe
Falls Ihre physische Speichergröße von bis zu 192 Megabyte (MB), dann standardmäßig maximale Heap-Größe ist die Hälfte des physischen Speichers.
Wenn Ihre physische Speichergröße mehr als 192 Megabyte beträgt, beträgt die maximale Größe des Heapspeichers ein Viertel des physischen Speichers.
Wenn beispielsweise dem Computer 128 MB an physikalischem Speicher hat, dann ist die maximale Speichergröße beträgt 64 MB, und größer als oder gleich 1 GB des physikalischen Speichers ergibt eine maximale Speichergröße von 256 MB.
Die maximale Heap-Größe wird von der JVM tatsächlich nicht verwendet, es sei denn, Ihr Programm erstellt genug Objekte, um es zu erfordern. Eine wesentlich kleinere Menge, die so genannte Initial-Heap-Größe, wird während der JVM-Initialisierung zugewiesen. Dieser Betrag beträgt mindestens 8 MB und ansonsten 1/64 physischen Speichers bis zu einer physischen Speichergröße von 1 GB.
Die maximale Menge an Speicherplatz für die junge Generation beträgt ein Drittel der Gesamtgröße des Heapspeichers.
Sie können
Linux mit dem folgenden Befehl speziell für Sie Maschine Standardwerte überprüfen:
java -XX: + PrintFlagsFinal -Ausführung | grep HeapSize
Fenster:
java -XX: + PrintFlagsFinal -Ausführung | findstr HeapSize
Referenz: https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size
Standard-Thread-Stack-Größe
Der Standardfaden Stapelgröße mit JVM, OS und Umgebungsvariablen variiert.
Um herauszufinden, was Ihre Standard-Thread-Stapelgröße auf Ihrer Plattform ist, verwendet
In Linux:
java -XX: + PrintFlagsFinal -Ausführung | grep Thread
In Windows:
java -XX: + PrintFlagsFinal -Ausführung | findstr ThreadStackSize
Wenn Ihre IDE keine spezifischen Einstellungen hat, verwendet sie die Java-Standardeinstellungen, die von der System- und Java-Version abhängen. – dunni