C言語においてメモリ使用量の概算をしたく思いそのテストとして下に示すようなプログラムを作成しました。このプログラムの場合ですと、倍精度実数型がnnt個となるので、8byte1398101*12≒127.9MBとなるのではないかと推測しました。しかし実際にそのプロセスの使用メモリを見ると300KBほどしか使用していませんでした。なぜこのような結果になったのか、もし概算の仕方などに誤りがあることがわかる方がいましたら、ご教授願えると幸いです。
コンパイラーはicc version 19.1.2.258を使用しています。
c
1#include <stdio.h> 2 3int main(){ 4 struct test { 5 double *value; 6 }; 7 8 int n = 1398101; 9 int nt = 12; 10 int i,j; 11 struct test *te; 12 13 te = malloc(sizeof(struct test) * n); 14 15 for (i=0; i<n; i++){ 16 te[i].value = malloc(sizeof(double) * nt); 17 for (j=0; j<nt; j++){ 18 te[i].value[j] = 0.0; 19 } 20 } 21 22 sleep(30); 23}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/01 01:20