2016-06-06 7 views
0

Gibt es eine Möglichkeit, den Eden Raum proportional größer als Tenured zu machen? Es gibt NewRatio, aber es funktioniert anders (Tenured ist das mal größer als Eden).Wie macht man Eden Space Größe doppelt Tenured Space

Ich weiß, es gibt -XX:NewSize= und -XX:OldSize=, aber ich war auf der Suche nach etwas ähnlich zu erwähnten Verhältnisparameter (was mehr Flexibilität geben würde).

Ich habe versucht, Bruch verwenden, aber es ist kein gültiger Wert.

+0

Welche Java-Version verwenden Sie? bitte hier [link] (http://www.oracle.com/technetwork/articles/java/vmoptions-jsp-140102.html) – AntJavaDev

+0

Meistens 8. Ich habe diese Seite schon gesehen, aber ich habe noch nichts gefunden könnte verwandt sein. – Wojtek

Antwort

0

Ähnlich wie die gesamte Heap-Größe (mit -Xms und -Xmx) ist es möglich, eine untere und obere Grenze für die Größe der jungen Generation explizit festzulegen. Bei der Einstellung -XX: MaxNewSize müssen wir jedoch berücksichtigen, dass die junge Generation nur ein Teil des Heaps ist und je größer wir ihre Größe wählen, desto kleiner wird die alte Generation. For stability reasons it is not allowed to choose a young generation size larger than the old generation, because in the worst case it may become necessary for a GC to move all objects from the young generation into the old generation. Thus -Xmx/2 is an upper bound for -XX:MaxNewSize.

Aus Leistungsgründen können wir auch die Anfangsgröße der jungen Generation mit dem Flag -XX: NewSize angeben. Dies ist nützlich, wenn wir wissen, wie schnell junge Objekte zugewiesen werden (zum Beispiel, weil wir es gemessen haben!) Und einen Teil der Kosten sparen können, die erforderlich sind, um die junge Generation im Laufe der Zeit langsam auf diese Größe zu bringen.

Meine Antwort basiert auf this Blog.

+0

Vielen Dank für die Antwort - wie ich schon erwähnt in der OP Ich kenne -XX: MaxNewSize und -XX: NewSize - aber diese erfordern konkrete Größen anstelle von Verhältnissen Bezug definiert HeapSize – Wojtek

+0

ja, .. Ich habe Ihren Standpunkt, Aber in Ihrer Frage haben Sie sich gefragt, ob Sie den Eden-Platz größer als Tenured machen wollen, was meiner Meinung nach nicht möglich ist, wie oben beschrieben. Kannst du mir auch etwas über deine genaue Anforderung/Situation erzählen, dann kann ich dir besser antworten. – pbajpai21

+0

Nun, eigentlich ist es möglich und ich führe JVM mit solchen Einstellungen (765M Eden vs 256M Tenured). Die Sache ist - das vorliegende System erzeugt viele kurzlebige Objekte, und die Theorie besagt, dass diese auf den Eden-Raum beschränkt sein sollten, während Festlinge nur langlebige Objekte haben sollten - den Eden-Raum in MinorGC sammeln, während alle Objekte in Eden sind sammelbar ist super-schnell (alle Dinge in Betracht gezogen), so wäre es super hilfreich, einfach das System zu konfigurieren, dass das Eden 3 oder 4 mal die Größe von Tenured Space sein sollte, was den ganzen Aufwand der Eingabe exakter Werte in das Conf beseitigen würde . – Wojtek