最近AM437X平台上面做一个项目,有一个功能是把一个512M的静态数组存进文件,遇到了一个奇怪的问题:数组里全部写入相同数据和全部写入不同数据,存储速度居然相差好几倍,验证代码在下面,甚是不解,请各位大佬解惑
12 FILE *SAVEFP = NULL;
13 time_t t_start, t_end;
14
15 SAVEFP = fopen("SAVE.dat", "w+");
16
17 for(int i = 0; i < (LINE * COL); i++)
18 {
19 storageBuffer[i] = i;
20 }
21
22 t_start = time(NULL);
23
24 fwrite(storageBuffer, sizeof(storageBuffer), 1, SAVEFP);
25
26 t_end = time(NULL);
27 printf("save_time: %.0f s\n", difftime(t_end,t_start));
28
29 fclose(SAVEFP);
save_time: 67 s
12 FILE *SAVEFP = NULL;
13 time_t t_start, t_end;
14
15 SAVEFP = fopen("SAVE.dat", "w+");
16
17 for(int i = 0; i < (LINE * COL); i++)
18 {
19 storageBuffer[i] = 111.00;
20 }
21
22 t_start = time(NULL);
23
24 fwrite(storageBuffer, sizeof(storageBuffer), 1, SAVEFP);
25
26 t_end = time(NULL);
27 printf("save_time: %.0f s\n", difftime(t_end,t_start));
28
29 fclose(SAVEFP);
30 return 0;
save_time: 16 s
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。