Bonjour,
Je sais que c'est une question commune, mais je dois dire que les solutions habituelles ne fonctionnent pas et je ne comprends pas pourquoi.
Tout d'abord voilà ma version de java :
Ensuite voilà le code que je cherche à faire tourner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ java --version openjdk 11.0.4 2019-07-16 OpenJDK Runtime Environment (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3) OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3, mixed mode, sharing)
Autrement dit une bête somme de deux matrices. Pourtant voilà ce qu'il se passe une fois lancé après compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public class Main { public static void main(String[] args) { final int n = 10000; double A[][] = new double[n][n]; double B[][] = new double[n][n]; double S[][] = new double[n][n]; int i,j; for (i = 0; i<n; i++) { for (j = 0; j<n; j++) { A[i][j] = 1.0 / ((double) i*j); B[i][j] = 1.0 / ((double) i*j); } } // Somme for (i = 0; i<n; i++) { for (j = 0; j<n; j++) { S[i][j] = A[i][j] + B[i][j]; } } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $ java Main Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at Main.main(Main.java:10)
Après recherche, je trouve la solution d'augmenter la RAM autorisée pour la JVM en utilisant le flag -Xmx, voilà donc et ça ne fonctionne pas non plus :
Ou encore :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $ java Main -Xmx2048m Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at Main.main(Main.java:10)
Pourtant je ne crois pas me tromper si je dis que les variables de ce code prennent à peine 3x8x10000 o = 240 000 o environ en négligeant les entiers, c'est à dire bien moins que les 2048 Mo que je suis sensé allouer avec mes flags... (J'ai 8Go de RAM sur mon pc)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $ java Main -Xms1024m -Xmx2048m Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at Main.main(Main.java:10)
Est-ce que quelqu'un a une idée de pourquoi j'ai quand même cette erreur ? Et comment y remedier ?
Merci d'avance et bonne soirée
Partager