[閒聊] 動態配置記憶體給初值與記憶體使用間的關係..
#include <iostream>
using namespace std;
double *cache;
#define N 1000
int main(int argc, char *argv[])
{
cache = (double *)malloc(sizeof(double)*N*N);
system("PAUSE"); //實:1,284 K 虛:8,132 K
for(int i=0; i<N*N; i++)
// for(int i=0; i<N*N/2; i++)
cache[i]=0;
system("PAUSE");
//實:9,116 K 虛:8,132 K 總: 17,248 K(指定cache[0:N*N] 初值)
//實:5,204 K 虛:8,132 K 總: 13,336 K(僅指定cache[0:N*N/2] 初值)
free(cache);
system("PAUSE"); //實:1,296 K 虛:312 K
return EXIT_SUCCESS;
}
是否意味未給定初值的狀況下比較節省記憶體 ?
若真為如此, 不要一次給初值, 在適當的地方給局部使用的部分初值
可以降低最大記憶體使用的情況?
或者以較小位元變數型態相同維度的變數作為cache標記的方法...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.96.198.60
推
02/26 12:24, , 1F
02/26 12:24, 1F
推
02/26 13:06, , 2F
02/26 13:06, 2F
→
02/26 13:08, , 3F
02/26 13:08, 3F
→
02/26 13:08, , 4F
02/26 13:08, 4F
→
02/26 13:11, , 5F
02/26 13:11, 5F
→
02/26 13:12, , 6F
02/26 13:12, 6F
→
02/26 13:13, , 7F
02/26 13:13, 7F
→
02/26 13:14, , 8F
02/26 13:14, 8F
→
02/26 13:14, , 9F
02/26 13:14, 9F
→
02/26 13:38, , 10F
02/26 13:38, 10F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章