亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 求助,如何縮短arm平臺(tái)頻繁讀寫文件時(shí)間。! [打印本頁]

作者: yu9148    時(shí)間: 2015-04-02 18:34
標(biāo)題: 求助,如何縮短arm平臺(tái)頻繁讀寫文件時(shí)間。!
ARM平臺(tái): flash:256M  內(nèi)存:128M

要求分析70M大小的數(shù)據(jù)3分鐘之內(nèi)出結(jié)果,現(xiàn)經(jīng)過測試瓶頸主要卡在頻繁讀寫文件上。大神們,看看如何優(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)寫入每個(gè)子文件
                        }
                }
        }

要求是第一個(gè)數(shù)據(jù)放入第一個(gè)文件,第二個(gè)數(shù)據(jù)放入第二個(gè)文件 。。。。 第33個(gè)數(shù)據(jù)再放入第一個(gè)文件,目前測試主要卡在
fwrite(&buffer[i], 2, 1, fp_write_arr[i%32]); 頻繁的寫文件上,70M數(shù)據(jù)用時(shí)3分鐘左右!~

考慮擴(kuò)大buffer 一次性寫入多點(diǎn),但效果不明顯!!求助!
作者: 鎮(zhèn)水鐵牛    時(shí)間: 2015-04-02 20:20
你的flash讀寫性能有多少,如果ram夠大,把數(shù)據(jù)都cache在ram中,開銷就是讀寫flash的了吧。
作者: yu9148    時(shí)間: 2015-04-03 09:22
因?yàn)閿?shù)據(jù)大小也不能確定,也試過在程序中緩存多一點(diǎn),比如10000個(gè)字節(jié)寫一次,相當(dāng)于32*10000,但是效果沒有改善。
再大一個(gè)數(shù)量級(jí)測試就出錯(cuò)了!

用沒有好的算法能提高這么大的循環(huán)寫文件? 以70M的文件為例,這個(gè)要寫 70*1024*512次!
作者: yu9148    時(shí)間: 2015-04-03 10:17
以70M數(shù)據(jù)為例,這段代碼測試時(shí)間為203s,注釋掉寫文件只要6s。求指點(diǎn)!
//fwrite(&buffer[i], 2, 1, fp_write_arr[i%32]);
作者: 鎮(zhèn)水鐵牛    時(shí)間: 2015-04-07 21:34
注釋掉寫操作,性能好也可以理解,畢竟flash的寫懲罰,性能比較慘淡。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2