Ein boolean[] Array größer als 63.000.000 erstellen? trotz -Xms und -Xmx....

Status
Nicht offen für weitere Antworten.

dsamuel007

Neues Mitglied
hallo leute, ich habe folgendes Problem:

ich möchte gerne ein richtig großes boolean Array allokieren - warum sei jetzt mal egal :) -
jedoch kann ich nur maximal einen Index von ~63.000.000 ohne Fehler allokieren.
Ab 64.000.000 kommt der Java Heap Space Error:
Java:
boolean[] test = new boolean[64000000];
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

Das entspricht - unter der Annahme ein boolean = ein bit Speciherverbrauch - ja nur

63.000.000 bit / (8*1000*1000) = 7,875MByte

die JVM hat folgende Parameter: -Xms512m und -Xmx1024m
mein System: WinVista Ultimate 64-bit, Quadcore T2200, 2GB-DDR3 RAM
IDE: eclipse

meinen Überlegungen zufolge, wäre so ein boolean Array eigentlich durch Integer.MAXVALUE beschränkt.

dies würde bedeuten, dass man theoretisch ein Feld der länge (2^31)-1 (=2.147.483.647) allokieren kann.

Der Speicherverbrauch würde sich auf:

2^31 bit / (8*1000*1000) = (hochgerundet) 269 MByte

ich habe auch bereits bei Sun im forum auf englisch angefragt, jedoch kam da bisher keine Antwort....???:L

Hat jemand von euch schon mal so einen Fehler gehabt und gelöst?

Vielen Dank schon mal für eure Antwort!
 
S

SlaterB

Gast
Java:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        Runtime r = Runtime.getRuntime();
        System.out.println("max : " + r.maxMemory());
        System.out.println("vor : " + (r.totalMemory() - r.freeMemory()));
        boolean[] test = new boolean[64000000];
        System.out.println("nach: " + (r.totalMemory() - r.freeMemory()));

    }
}
Code:
max : 1065484288
vor : 194560
nach: 64131656

-Xmx1024m funktioniert bei mir, wo hast du das denn eingetippt?
 

FatFire

Bekanntes Mitglied
Aber im Vergleich des Speicherverbrauchs empfiehlt sich ganz klar das BitSet.
Java:
import java.util.BitSet;

public class Test {
	public static void main(String[] args) throws Exception {
		Runtime r = Runtime.getRuntime();
		System.out.println("max : " + r.maxMemory());
		System.out.println("vor : " + (r.totalMemory() - r.freeMemory()));
		BitSet test = new BitSet(64000000);
		System.out.println("nach: " + (r.totalMemory() - r.freeMemory()));
	}
}
Code:
max : 66650112
vor : 195024
nach: 8124976
BitSet: 7.929.952 Byte (~8 MByte, ähnlich Deiner Schätzung)
Array von Booleans: 63.937.096 Byte (~64 MByte)
Damit wäre aber auch widerlegt, dass Boolean 4 Byte groß ist, Boolean ist "nur" 1 Byte groß.

Gruß FatFire
 

Marco13

Top Contributor
Beim Rechnen in der VM ist alles 4 byte groß (vllt. 8 bei 64 bit?). Es lohnt sich also nicht, im Code mit short o.ä zu rechnen. Nur wenn's um Speicher-sparen bei Arrays geht - und dann ist ein BitSet eben noch besser als ein boolean[].
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
Kirby.exe ArrayOutOfBoundsException bei boolean Array Java Basics - Anfänger-Themen 19
I converting boolean Array to String Array Java Basics - Anfänger-Themen 10
P Array Sortieren mit boolean? Java Basics - Anfänger-Themen 33
W In Methode boolean array zurückgeben Java Basics - Anfänger-Themen 3
B Math.random mit Boolean array? Java Basics - Anfänger-Themen 17
H boolean Array Problem Java Basics - Anfänger-Themen 7
O boolean Array Frage! Java Basics - Anfänger-Themen 4
D Boolean Array initialisieren Java Basics - Anfänger-Themen 4
K Problem mit Methode(Array,Boolean,ForSchleife) Java Basics - Anfänger-Themen 6
V Methode erstellen für ein Boolean Array Java Basics - Anfänger-Themen 13
E 2 dimensionales Boolean Array Java Basics - Anfänger-Themen 5
W Datentypen Zweidimensionales Boolean Array Java Basics - Anfänger-Themen 13
feardorcha boolean array false - true - Abfrage Java Basics - Anfänger-Themen 10
T Array und Boolean ? Java Basics - Anfänger-Themen 6
B Zweidimensionales Array mit boolean Werten Java Basics - Anfänger-Themen 3
N boolean array hilfe Java Basics - Anfänger-Themen 5
L Boolean Array abfrage Java Basics - Anfänger-Themen 7
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 4
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
B Rückgabewert boolean Java Basics - Anfänger-Themen 8
J Compiler-Fehler Harshadzahlen mit Boolean Java Basics - Anfänger-Themen 4
J boolean aufgabe Java Basics - Anfänger-Themen 9
A Boolean Java Basics - Anfänger-Themen 5
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
J Boolean[] teilen Java Basics - Anfänger-Themen 13
S public static boolean Java Basics - Anfänger-Themen 4
R Boolean Methode Rückgabewert if() Java Basics - Anfänger-Themen 1
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
L Überschriebene Boolean Statements Java Basics - Anfänger-Themen 2
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
R Boolean value ohne Kontrollstrukturen ändern Java Basics - Anfänger-Themen 5
F boolean stellt sich auf true Java Basics - Anfänger-Themen 15
V Boolean Wert nicht richtig erkannt Java Basics - Anfänger-Themen 4
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
C Java Boolean reagiert nicht Java Basics - Anfänger-Themen 18
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
G Ratlosigkeit zur Aufgabe im Anhang (boolean, equals.) Java Basics - Anfänger-Themen 20
F Boolean Methode Wert ausgeben. Java Basics - Anfänger-Themen 2
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
K Boolean in einer erstellten Klasse verwenden Java Basics - Anfänger-Themen 14
X Erste Schritte boolean wert ändert sich nicht? Java Basics - Anfänger-Themen 6
W Problem mit dem Wert von boolean-Variable Java Basics - Anfänger-Themen 3
A Boolean in String Java Basics - Anfänger-Themen 2
S Operatoren Boolean Vergleichsoperator Java Basics - Anfänger-Themen 7
Queiser Super boolean Java Basics - Anfänger-Themen 11
E ISBN Nummer mit boolean Java Basics - Anfänger-Themen 5
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
T Methoden Boolean wird nicht gesetzt Java Basics - Anfänger-Themen 1
S boolean Wert von mehreren int Möglichkeiten abfragen ? Java Basics - Anfänger-Themen 4
J Problem mit Boolean bei Funktion! Java Basics - Anfänger-Themen 5
? Methoden Boolean Wert vergleichen und einlesen Java Basics - Anfänger-Themen 1
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
A Problem beim Deklarieren von einem BOOLEAN Java Basics - Anfänger-Themen 4
W Interpreter-Fehler boolean nur eins darf wahr sein Java Basics - Anfänger-Themen 11
G Wie kann man den Erfolg einer Zuweisung als Boolean Wert verwenden? Java Basics - Anfänger-Themen 12
T Boolean by Reference Java Basics - Anfänger-Themen 6
L Wertebereich von boolean Java Basics - Anfänger-Themen 4
D Erklärung static boolean Java Basics - Anfänger-Themen 6
T Eine String Matrix erstellen die eine boolean Funtion verwendet Java Basics - Anfänger-Themen 10
J Datentypen Boolean Refferenz Objekt Java Basics - Anfänger-Themen 2
A boolean Methode ohne If und else Java Basics - Anfänger-Themen 1
fLooojava Laufender Thread | Boolean ändern Java Basics - Anfänger-Themen 9
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
A Boolean aus dem ActionlListener Java Basics - Anfänger-Themen 1
T hashCode mit boolean Java Basics - Anfänger-Themen 1
T boolean, was passiert hier? Java Basics - Anfänger-Themen 4
M Sind solche boolean Anweisen empfehlenswert? Java Basics - Anfänger-Themen 3
N Boolean Werte - immer "false" Java Basics - Anfänger-Themen 5
J GUI per Boolean steuern Java Basics - Anfänger-Themen 3
F Effizientes Lesen von 65 Datein mit Boolean Werten Java Basics - Anfänger-Themen 6
K Viergewinnt - boolean Problem Java Basics - Anfänger-Themen 2
S Best Practice Boolean mit IF verbinden Java Basics - Anfänger-Themen 7
D Boolean mit String Java Basics - Anfänger-Themen 2
K Methode ohne Rückgabewert in boolean Methode ändern Java Basics - Anfänger-Themen 6
B assertArrayEquals nicht für boolean[]? Java Basics - Anfänger-Themen 2
M !boolean das selbe wie boolean == false? Java Basics - Anfänger-Themen 3
L Boolean Methode wirft Fehler aus Java Basics - Anfänger-Themen 12
M Erste Schritte boolean: ist Zahl Hexadezimal - Lösung verwirrend Java Basics - Anfänger-Themen 6
F Datentypen Frage nach Boolean Java Basics - Anfänger-Themen 11
C Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 20
B Boolean abfrage Java Basics - Anfänger-Themen 3
L The operator && is undefined for the argument type(s) String, boolean Java Basics - Anfänger-Themen 8
L Methoden Boolean-Methode Java Basics - Anfänger-Themen 16
S Setter Methode von Boolean Java Basics - Anfänger-Themen 11
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
M int & boolean Java Basics - Anfänger-Themen 12
R boolean, if-else Java Basics - Anfänger-Themen 7
J Variablen Boolean true "übersetzen" in String Java Basics - Anfänger-Themen 10
M Meldung "cannot convert flom boolean to boolean[]" Java Basics - Anfänger-Themen 3
S Name eines boolean ausgeben (nicht den Wert) Java Basics - Anfänger-Themen 43
S Variablen Prüfen, ob einer von vielen boolean true ist Java Basics - Anfänger-Themen 8
D boolean te wird nicht verwendet Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben