- 論壇徽章:
- 0
|
ARM平臺(tái): flash:256M 內(nèi)存:128M
要求分析70M大小的數(shù)據(jù)3分鐘之內(nèi)出結(jié)果,現(xiàn)經(jīng)過(guò)測(cè)試瓶頸主要卡在頻繁讀寫(xiě)文件上。大神們,看看如何優(yōu)化?感謝!~~
部分代碼:
fp_read = fopen(filepath, "rb" ;
for(i=0; i<32; i++)
{
strcpy(file_name, folder);
strcat(file_name, filename_arr[i]);
fp_write_arr[i] = fopen(file_name, "wb" ;
}
if(fp_read) {
while(!feof(fp_read)) {
memset(buffer, 0, 32000*sizeof(short));
count_tmp = fread(buffer, 2, 32000, fp_read);
for(i=0; i<count_tmp; i++)
{
buffer[i]=abs(buffer[i] - 3276 ; //求絕對(duì)值
fwrite(&buffer[i], 2, 1, fp_write_arr[i%32]); //循環(huán)寫(xiě)入每個(gè)子文件
}
}
}
要求是第一個(gè)數(shù)據(jù)放入第一個(gè)文件,第二個(gè)數(shù)據(jù)放入第二個(gè)文件 。。。。 第33個(gè)數(shù)據(jù)再放入第一個(gè)文件,目前測(cè)試主要卡在
fwrite(&buffer[i], 2, 1, fp_write_arr[i%32]); 頻繁的寫(xiě)文件上,70M數(shù)據(jù)用時(shí)3分鐘左右!!~
考慮擴(kuò)大buffer 一次性寫(xiě)入多點(diǎn),但效果不明顯。!求助! |
|