淺談一種在嵌入式內(nèi)核中測(cè)試exfat文件系統(tǒng)性能的方法的論文
隨著嵌入式技術(shù)的發(fā)展,利用各種開源的嵌入式平臺(tái)來(lái)開發(fā)電子產(chǎn)品,已經(jīng)成為大部分公司的首選。要使運(yùn)行嵌入式系統(tǒng)的電子產(chǎn)品實(shí)現(xiàn)音頻、視頻、圖片等多媒體信息的存儲(chǔ)及處理,幾乎離不開文件系統(tǒng)的支持,那么在嵌入式平臺(tái)下開發(fā)各種文件系統(tǒng)也是必然。其中具備優(yōu)越性能的exfat 文件系統(tǒng)由于微軟的不開源性,也常常需要在內(nèi)核中自主開發(fā)。
在嵌入式系統(tǒng)中,如linux、ucos,實(shí)現(xiàn)exfat 文件系統(tǒng)的功能已經(jīng)不難。嵌入式開發(fā)者在具備嵌入式開發(fā)經(jīng)驗(yàn)及exfat 文件系統(tǒng)的知識(shí)基礎(chǔ)上,即可完成。但是在實(shí)現(xiàn)了exfat 文件系統(tǒng)的'功能后,要如何驗(yàn)證其性能卻不是那么容易。
1 測(cè)試工具的局限性
嵌入式軟件由于內(nèi)存有限、實(shí)時(shí)性、開發(fā)工具昂貴等特點(diǎn),測(cè)試非常困難。嵌入式軟件從下到上,分為硬件層、驅(qū)動(dòng)層、內(nèi)核層、應(yīng)用層,而內(nèi)核層由于結(jié)構(gòu)復(fù)雜、代碼龐大,是嵌入式軟件中最難測(cè)試的部分,本文中待測(cè)的exfat 文件系統(tǒng)正處于內(nèi)核層。雖然嵌入式軟件有一些集成的測(cè)試軟件,但是一般的測(cè)試軟件只能用于標(biāo)準(zhǔn)的嵌入式內(nèi)核,只能測(cè)試規(guī)定的功能,不能進(jìn)行二次開發(fā),而對(duì)于很多嵌入式產(chǎn)品來(lái)說(shuō),嵌入式內(nèi)核源碼需要修改,也需要測(cè)試更多特定的功能,這就需要特定的測(cè)試方式。
因此本文要探索的是在內(nèi)核層的文件系統(tǒng)的測(cè)試方式。按照測(cè)試方式來(lái)分類,該測(cè)試屬于白盒測(cè)試的范疇。
2 測(cè)試體系
文件系統(tǒng)是一種存儲(chǔ)系統(tǒng),對(duì)于存儲(chǔ)系統(tǒng)來(lái)說(shuō),需要關(guān)注的性能有訪問(wèn)接口性能、數(shù)據(jù)讀寫性能、聚合帶寬、最大并發(fā)數(shù)、任務(wù)數(shù)、最大吞吐率、可擴(kuò)展能力等,本文中的測(cè)試任務(wù)是測(cè)試嵌入式系統(tǒng)內(nèi)核層文件系統(tǒng)的性能,因此需要測(cè)試的性能也相對(duì)單一,著重測(cè)試訪問(wèn)接口性能和數(shù)據(jù)讀寫性能。其中訪問(wèn)接口性能是指各個(gè)操作元數(shù)據(jù)和數(shù)據(jù)的API 返回速度,單位為API 操作數(shù)/s。以O(shè)pen 函數(shù)為例,在應(yīng)用層新建文件,調(diào)用Open函數(shù),就可以通過(guò)內(nèi)核文件函數(shù)FS_Open 函數(shù)調(diào)用驅(qū)動(dòng)層函數(shù),從而調(diào)用硬件,完成具體的功能。那么該API的返回速度指發(fā)送Open 命令到返回成功所花的時(shí)間;數(shù)據(jù)讀寫性能是指測(cè)定不同文件大小,數(shù)據(jù)塊大小和讀寫比例的數(shù)據(jù)讀寫性能,單位為MB/s,以Read 函數(shù)為例,預(yù)先在系統(tǒng)中插入存儲(chǔ)設(shè)備,調(diào)用Read 函數(shù)來(lái)讀取該存儲(chǔ)設(shè)備中的特定大小的文件,通過(guò)文件的大小除以讀取的時(shí)間即可獲得讀取的速度;當(dāng)然也可以用time 命令來(lái)測(cè)試時(shí)間,手動(dòng)去計(jì)算速度,測(cè)試代碼如下:
#define size 1024*1024*200
#define LEN 1024
#include
int main()
{
FILE *fp1;
char *buf=new char[LEN];
int i,j;
fp1=fopen(“data.in”,”rb”);
for(j=0;j<1024*500;j++)
{
fread(buf,1024,1,fp1);
}
printf(“ok!/n”);
fclose(fp1);
}
綜上所述,測(cè)試體系如下所示:其中應(yīng)用層的測(cè)試代碼作用是調(diào)用相關(guān)的APP 函數(shù),內(nèi)核層對(duì)應(yīng)函數(shù)指的是exfat 文件系統(tǒng)的功能函數(shù),驅(qū)動(dòng)層函數(shù)指的是與硬件相連的操作函數(shù)。
Exfat 文件系統(tǒng)的接口函數(shù)有:
unsigned int fsapitbl[]={
(unsigned int)FOpen,
(unsigned int)FClose,
(unsigned int)FRead,
(unsigned int)FWrite,
(unsigned int)GetLength,
(unsigned int)GetTime,
(unsigned int)ConvertName,
......
};
針對(duì)所有的APP 都需要完成接口性能測(cè)試,測(cè)試其響應(yīng)時(shí)間以及功能的正確性;針對(duì)包含Read 和Write的APP 還需要完成讀寫性能測(cè)試,測(cè)試其讀寫速度,并且針對(duì)不同的存儲(chǔ)設(shè)備,不同的文件大小要有不同的測(cè)試數(shù)據(jù)。對(duì)于存儲(chǔ)系統(tǒng)的其他測(cè)試性能,需要聯(lián)合整個(gè)嵌入式系統(tǒng)來(lái)測(cè)試。
3 測(cè)試數(shù)據(jù)
在ucos 嵌入式平臺(tái)上測(cè)試exfat 的讀寫性能所得。其中ReadDIO 指用DirectIO 的方式來(lái)完成讀操作,速度比一般的Read 更快,當(dāng)然針對(duì)不同的應(yīng)用需求,可能會(huì)對(duì)內(nèi)核文件系統(tǒng)系統(tǒng)進(jìn)行不同的修改,測(cè)試時(shí)要根據(jù)文件系統(tǒng)需求文檔和設(shè)計(jì)文檔來(lái)設(shè)計(jì)測(cè)試樣例。
4 測(cè)試結(jié)果
通過(guò)測(cè)試數(shù)據(jù)的分析,可以看出本文提出的測(cè)試方法可以快速全面地測(cè)試內(nèi)核層exfat 文件系統(tǒng)的性能。雖然本文提出的測(cè)試方法目前只針對(duì)exfat 文件系統(tǒng),但因?yàn)閑xfat、fat、ntfs 等文件系統(tǒng)基本接口APP 的類似性,本問(wèn)提出的測(cè)試方法也可以拓展到其他文件系統(tǒng)的測(cè)試。不過(guò)本文的測(cè)試方法還未實(shí)現(xiàn)全自動(dòng)的測(cè)試,這還需要后續(xù)通過(guò)配置腳本來(lái)實(shí)現(xiàn)。
【淺談一種在嵌入式內(nèi)核中測(cè)試exfat文件系統(tǒng)性能的方法的論文】相關(guān)文章:
淺談歌唱中的位置與方法論文03-30
淺談基于嵌入式系統(tǒng)在教學(xué)中的應(yīng)用論文01-26
淺談解構(gòu)與組合方法在服飾設(shè)計(jì)中的應(yīng)用論文07-07
淺談前端性能優(yōu)化05-02
淺談閱讀教學(xué)中內(nèi)容的選擇方法論文09-26