hallo,
ich schreibe gerade ein java programm und benutze dabei arrays. mein aktuelles programm wurde gleich beim ausführen mit einem outofmemory: java heap space fehler kommentiert. ich habe dann mit dem parameter -Xmx1300M das programm zum laufen gebracht. das programm reserviert folgende arrays:
wenn ich mal die zwei größten nehme: 45 * 45 * 101 * 101 * (1 + 3) = 82628100
datentyp ist double (8 byte): 82628100 * 8 = 661024800 bytes = 630,x MB
den rest vom programm kann man wohl pi * daumen vernachlässigen. speicherplatzbedarf von java also knapp unter 1,3 GB. meine frage: ist das normal das java doppelt so viel speicherplatz für seine arrays braucht wie effektiv daten vorhanden sind? kann man das eventuell besser machen, und wenn nicht ist es möglich das mit der programiersprache c besser zu lösen ?
ich schreibe gerade ein java programm und benutze dabei arrays. mein aktuelles programm wurde gleich beim ausführen mit einem outofmemory: java heap space fehler kommentiert. ich habe dann mit dem parameter -Xmx1300M das programm zum laufen gebracht. das programm reserviert folgende arrays:
Java:
double[] ada = new double[45];
double[][] aada = new double[45][45];
double[][][] aaada = new double[45][45][101];
double[][][][] aaaada = new double[45][45][101][101];
double[][][][][] aaaaada = new double[45][45][101][101][3];
wenn ich mal die zwei größten nehme: 45 * 45 * 101 * 101 * (1 + 3) = 82628100
datentyp ist double (8 byte): 82628100 * 8 = 661024800 bytes = 630,x MB
den rest vom programm kann man wohl pi * daumen vernachlässigen. speicherplatzbedarf von java also knapp unter 1,3 GB. meine frage: ist das normal das java doppelt so viel speicherplatz für seine arrays braucht wie effektiv daten vorhanden sind? kann man das eventuell besser machen, und wenn nicht ist es möglich das mit der programiersprache c besser zu lösen ?