|
用以下两种方式,分别向3个文件写入80M字节。方式1:循环向3个文件写8k字节数据,直到写满80M字节。
i = 10240;
while (i--) {
res = f_write(&pfile, &buf_temp, 8192, &fwrite_cnt);
if (FR_OK != res) break;
res = f_write(&pfile2, &buf_temp, 8192, &fwrite_cnt);
if (FR_OK != res) break;
res = f_write(&pfile3, &buf_temp, 8192, &fwrite_cnt);
if (FR_OK != res) break;
}
方式2:每次写8k字节,写完80M字节到1个文件,再写另一个文件。
i = 10240;
while (i--) {
res = f_write(&pfile, &buf_temp, 8192, &fwrite_cnt);
if (FR_OK != res) break;
}
i = 10240;
while (i--) {
res = f_write(&pfile2, &buf_temp, 8192, &fwrite_cnt);
if (FR_OK != res) break;
}
i = 10240;
while (i--) {
res = f_write(&pfile3, &buf_temp, 8192, &fwrite_cnt);
if (FR_OK != res) break;
}
方式1耗时约4分55秒,即295秒,方式2耗时约60秒。耗时比例约为5:1。
我所做项目是多通道录音设备,当前采用的是方式1写各个通道的数据到不同文件,由于写入速度限制,无法达到要求的最高采样率。
请问怎么才能解决这个矛盾?
|
|