Ich bin total satt und angewidert, einen guten Wert für die Befehlszeilenoption -Xmx
erraten zu müssen, meine Anwendungen mit OutOfMemoryException
abstürzen zu lassen, den -Xmx
Wert ändern und meine Anwendungen die ganze Zeit neu starten müssen.Anweisen, dass JVM Speicher wie normale Prozesse verwendet?
Gibt es eine Möglichkeit JVM normale handeln zu machen, so dass sie keine -Xmx
Option erfordern würden, und würde und frei Speicher direkt von den OS wie jede normale Anwendung würde zuweisen? Gibt es einen GC, der effizienter ist und Speicher dynamisch an das Betriebssystem zurückgibt, wenn Objekte freigegeben werden?
Wenn ich mich richtig erinnere, hat Java seine Wurzeln in eingebetteten Umgebungen, aber ist seit langem in der Popularität gewachsen und verbreitet auf alle Arten von Systemen. Sicherlich muss es im 21. Jahrhundert einen Weg dafür geben? Es gibt viele Anwendungsfälle, bei denen eine Anwendung zwischen einigen Kilobyte und mehreren Terabyte Speicher benötigt, und die lästige -Xmx
ist wirklich im Weg.
(Erinnerung an mich selbst: Da es iterativ keine gute Antworten in cargo cult Art und Weise einige andere GC-s und zufällige Befehlszeilenoptionen ausprobieren)
Okay. Geben Sie kein '-Xmx' (** oder ** a' -Xms') -Argument an. –
@ ElliottFrisch Aber hat die JVM nicht einen voreingestellten '-Xmx' Wert? – mceo
@EliottFrisch Aber es gibt den Speicher zur Laufzeit nicht an das Betriebssystem zurück? – mceo