次のコードをコンパイルして実行すると:(cygwinでgccを使用)
int *a = malloc(1024*1024*100*sizeof(int));
while(1)
;
Windows XPのタスクマネージャは、このプロセスによるメモリ使用量を2232Kと表示します。これは、私によれば、約400000Kであるはずです。
次のコードをコンパイルして実行すると:(cygwinでgccを使用)
int *a = malloc(1024*1024*400*sizeof(int));
while(1)
;
メモリ使用量は1388Kに減少します。
したがって、増加を示すのではなく、実際には減少を示します。
これを説明できるのは何ですか?