mon prog c++ n'utilise pas le swap
Salut!
Je débute en c++ et j'ai le problème suivant:
je veux exécuter un prog qui crée une matrice de "double" de dimension 20000 x 20000:
Code:
1 2 3 4 5 6 7 8
| #include <iostream>
using namespace std;
int main(){
cout<<"size of double: "<< sizeof(double)<<endl;
double** Matrix=new double*[20000];
for (int i=0; i<20000; i++) Matrix[i]=new double[20000];
} |
Quand je lance le prog, j'obtiens la sortie suivante:
Code:
1 2 3 4
| size of double: 8
terminate called after throwing an instance of 'std::bad_alloc'
what(): St9bad_alloc
Aborting |
Si je tape la commande linux "free -s 0.01" pendant l'exécution du prog, je remarque que la mémoire physique diminue pratiquement jusque zéro puis que le prog s'arrête. Je ne comprends pas pourquoi il ne continue pas à tourner en utilisant les 18 GB de mon swap (oui, je sais, c'est beaucoup)...
Quelqu'un a une idée??
(je suis sous debian et je compile avec g++)
sortie de "free -s 0.01":
Code:
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 32 33 34 35 36 37 38 39 40 41
| total used free shared buffers cached
Mem: 516692 437852 78840 0 40244 190016
-/+ buffers/cache: 207592 309100
Swap: 17757076 112 17756964
total used free shared buffers cached
Mem: 516692 445044 71648 0 40244 190016
-/+ buffers/cache: 214784 301908
Swap: 17757076 112 17756964
total used free shared buffers cached
Mem: 516692 455088 61604 0 40244 190016
-/+ buffers/cache: 224828 291864
Swap: 17757076 112 17756964
total used free shared buffers cached
Mem: 516692 467364 49328 0 40244 190016
-/+ buffers/cache: 237104 279588
Swap: 17757076 112 17756964
total used free shared buffers cached
Mem: 516692 476788 39904 0 40244 190016
-/+ buffers/cache: 246528 270164
Swap: 17757076 112 17756964
total used free shared buffers cached
Mem: 516692 489064 27628 0 40244 190016
-/+ buffers/cache: 258804 257888
Swap: 17757076 112 17756964
total used free shared buffers cached
Mem: 516692 499604 17088 0 40244 190016
-/+ buffers/cache: 269344 247348
Swap: 17757076 112 17756964
total used free shared buffers cached
Mem: 516692 510564 6128 0 40240 188996
-/+ buffers/cache: 281328 235364
Swap: 17757076 112 17756964
CRASH! |