数据本身对存储速度的影响

最近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天,您在需要使用的时候【私信】联系我,我会为您补发。