2014-02-05 27 views
5

Wenn ich 16 GB RAM auf meinem Computer habe, wie viel kann ich einem Java-Befehlszeilenprogramm zuweisen, das ich ausführe? Ich nehme an, java -Xmx 16g... wird mein System zum Absturz bringen?Wie viel Speicher kann ich zuordnen?

EDIT:
Im Lichte der Kommentare, habe ich versucht, java -Xmx16g..., und es hat nicht meine Maschine zum Absturz bringen. Das Programm hat immer noch nicht genügend Speicher. Ich habe versucht, java -Xmx32g..., die meine Maschine abstürzte.

Von den Kommentaren unten (die wirklich aufschlussreich sind), ich denke, ich muss nur weiter mit den Zuordnungen spielen.

+3

Was ist passiert, als Sie es versucht haben? –

+1

Probieren Sie es aus und sehen Sie. OS stellen [swap space] (http://en.wikipedia.org/wiki/Paging) bereit, die die verfügbare Gesamtmenge an virtuellem Speicher größer machen als die Menge des vorhandenen physischen Speichers, solange nicht der gesamte Speicher gleichzeitig benötigt wird (Seiten können "ausgelagert" werden). – TypeIA

+0

16g? ernst? –

Antwort

2

Dieser Link über maximum heap size kann für Sie nützlich sein.

Es hängt von Ihrem Betriebssystem ab.

6

Die Größe der Heap-Speicher der virtuellen Maschine durch die Optionen gesteuert wird - Xms und - Xmx.

Die erste gibt die anfängliche Größe des Heapspeichers und die zweite maximale Größe an.

Die Zuordnung erfolgt in der JVM getan selbst, und nicht auf das O. Wenn mehr Speicher benötigt wird, weist die JVM einen Speicherblock zu, bis Xmx erreicht ist.

Wenn Sie mehr benötigen, wird ein OutOfMemoryError ausgelöst. nur zu Beginn eines Ausführungs

Es ist üblich, den gleichen Wert für Xms und Xmx, zu verwenden die VM verursachten Speicher in dem Betriebssystem zuzuordnen, nicht in Abhängigkeit von dem O spezifischen Verhalten.


In Ihrem Fall, da Sie 32g als Xmx und Ihr System abgestürzt gesetzt, es scheint, dass Sie nicht auf diesen Speicher haben (Swap + Gedächtnis-RAM)

Wenn Sie manuell ändern Die virtuelle Speichergröße Ihres Systems, die Konfiguration wird funktionieren.

0

Es ist nicht möglich, dass Ihr Betriebssystem mehr als 16 GB und somit Ihren Systemabsturz zuweist. Abgesehen von XMX und XMS, die in einer anderen Antwort angegeben sind, gibt es auch eine Option -XX: + AggressiveHeap, die die Maschinenressourcen (Speichergröße und Anzahl der Prozessoren) überprüft und versucht, verschiedene Parameter so einzustellen, dass sie für lang andauernden Speicher optimal sind Zuordnungsintensive Jobs

Verwandte Themen