Grosse Arrays
-
Hallo,
wie kann man in Java Arrays mit zum Beispiel 594967296 long Werten anlegen?
Meine JVM sagt:
Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
-
Haste du mal nachgerechnet wieviel Speicher du da anforderst?
In diesem Fall wirst du wohl um eine Auslagerungsdatei und
gelegendliches nachladen wohl nicht herumkommen.Mfg
Beowulf
-
Beowulf schrieb:
Haste du mal nachgerechnet wieviel Speicher du da anforderst?
In diesem Fall wirst du wohl um eine Auslagerungsdatei und
gelegendliches nachladen wohl nicht herumkommen.Mfg
BeowulfIch habe es nachgerechnet und ich kann es auch anfordern ohne eine Auslagerungsdatei zu bemühen.
Ich muss Abgaben korrigieren und die C++ Programme laufen anstandslos auf meinen großen Instanzen. Nur die Java Abgaben zicken herum. Ich wollte ja mal fragen ob es geht, bevor ich den Leuten Minuspunkte aufdrücke.
-
Ponto schrieb:
Beowulf schrieb:
Haste du mal nachgerechnet wieviel Speicher du da anforderst?
In diesem Fall wirst du wohl um eine Auslagerungsdatei und
gelegendliches nachladen wohl nicht herumkommen.Mfg
BeowulfIch habe es nachgerechnet und ich kann es auch anfordern ohne eine Auslagerungsdatei zu bemühen.
Ich muss Abgaben korrigieren und die C++ Programme laufen anstandslos auf meinen großen Instanzen. Nur die Java Abgaben zicken herum. Ich wollte ja mal fragen ob es geht, bevor ich den Leuten Minuspunkte aufdrücke.
Du kannst versuchen den verfügbaren Arbeitsspeicher für deine
VM zu erhöhen. Schau dir dazu mal die Kommandozeilenparameter
XMs und XMx für deine Java VM an. Aber bei so großen Speicheranforderungen
bezweifle ich das es laufen wird.Siehe auch hier
Mfg
Beowulf
-
Beowulf schrieb:
Ponto schrieb:
Beowulf schrieb:
Haste du mal nachgerechnet wieviel Speicher du da anforderst?
In diesem Fall wirst du wohl um eine Auslagerungsdatei und
gelegendliches nachladen wohl nicht herumkommen.Mfg
BeowulfIch habe es nachgerechnet und ich kann es auch anfordern ohne eine Auslagerungsdatei zu bemühen.
Ich muss Abgaben korrigieren und die C++ Programme laufen anstandslos auf meinen großen Instanzen. Nur die Java Abgaben zicken herum. Ich wollte ja mal fragen ob es geht, bevor ich den Leuten Minuspunkte aufdrücke.
Du kannst versuchen den verfügbaren Arbeitsspeicher für deine
VM zu erhöhen. Schau dir dazu mal die Kommandozeilenparameter
XMs und XMx für deine Java VM an. Aber bei so großen Speicheranforderungen
bezweifle ich das es laufen wird.Siehe auch hier
Mfg
BeowulfHab schon mit XMs und XMx herumgespielt. Die AMD64 JVM nimmt sich sowieso mehr Heap als die i386. Mir scheint auch, dass die Fehlermeldung nicht wegen mangelnden Heaps kommt. Wenn der Heap zu klein wird kommt eher:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
-
Ein long hat 8 Byte. 8 * 594967296 ist mehr als 4,4 GB. Das geht mit 32 Bit natürlich nicht. Ob das auf nem 64 Bit Rechner geht, weiß ich nicht. Da könntest du mal -XX:+AggressiveHeap probieren.
Gruß, Dirk