浅谈一种在嵌入式内核中测试exfat文件系统性能的方法的论文【优质3篇】
浅谈一种在嵌入式内核中测试exfat文件系统性能的方法的论文 篇一
随着嵌入式系统的广泛应用,对于文件系统的性能要求也越来越高。exFAT作为一种用于嵌入式系统的文件系统,具有很好的可移植性和高效性能,因此备受关注。为了保证嵌入式系统在使用exFAT文件系统时的良好性能,本文提出了一种在嵌入式内核中测试exFAT文件系统性能的方法。
首先,我们需要搭建一个适合的测试环境。在嵌入式系统中,我们可以选择使用虚拟机来模拟实际的硬件环境。通过在虚拟机中安装嵌入式内核,并加载exFAT文件系统模块,我们可以在虚拟机中进行性能测试。
其次,我们需要选择合适的性能测试工具。在本文中,我们选择了fio工具来进行性能测试。fio是一个功能强大的文件系统性能测试工具,可以模拟不同的读写负载,并提供详细的性能统计信息。通过使用fio工具,我们可以测试exFAT文件系统在不同读写负载下的性能表现。
接下来,我们需要定义一些性能测试指标。在测试exFAT文件系统性能时,我们主要关注以下几个指标:吞吐量、响应时间和并发性。吞吐量是指单位时间内处理的数据量,可以反映文件系统的数据处理能力。响应时间是指系统对于用户请求的响应时间,可以反映文件系统的响应速度。并发性是指系统能够同时处理的请求数量,可以反映文件系统的并发处理能力。
最后,我们需要进行实际的性能测试。在测试过程中,我们可以通过调整读写负载和并发性来观察exFAT文件系统的性能表现。通过对测试结果的分析和比较,我们可以评估exFAT文件系统在嵌入式内核中的性能,并提出相应的优化方案。
综上所述,本文提出了一种在嵌入式内核中测试exFAT文件系统性能的方法。通过搭建适合的测试环境、选择合适的性能测试工具、定义合适的性能测试指标,并进行实际的性能测试,我们可以全面评估exFAT文件系统在嵌入式内核中的性能,为系统的优化提供指导。
浅谈一种在嵌入式内核中测试exfat文件系统性能的方法的论文 篇三
浅谈一种在嵌入式内核中测试exfat文件系统性能的方法的论文
随着嵌入式技术的发展,利用各种开源的嵌入式平台来开发电子产品,已经成为大部分公司的首选。要使运行嵌入式系统的电子产品实现音频、视频、图片等多媒体信息的存储及处理,几乎离不开文件系统的支持,那么在嵌入式平台下开发各种文件系统也是必然。其中具备优越性能的exfat 文件系统由于微软的不开源性,也常常需要在内核中自主开发。
在嵌入式系统中,如linux、ucos,实现exfat 文件系统的功能已经不难。嵌入式开发者在具备嵌入式开发经验及exfat 文件系统的知识基础上,即可完成。但是在实现了exfat 文件系统的'功能后,要如何验证其性能却不是那么容易。
1 测试工具的局限性
嵌入式软件由于内存有限、实时性、开发工具昂贵等特点,测试非常困难。嵌入式软件从下到上,分为硬件层、驱动层、内核层、应用层,而内核层由于结构复杂、代码庞大,是嵌入式软件中最难测试的部分,本文中待测的exfat 文件系统正处于内核层。虽然嵌入式软件有一些集成的测试软件,但是一般的测试软件只能用于标准的嵌入式内核,只能测试规定的功能,不能进行二次开发,而对于很多嵌入式产品来说,嵌入式内核源码需要修改,也需要测试更多特定的功能,这就需要特定的测试方式。
因此本文要探索的是在内核层的文件系统的测试方式。按照测试方式来分类,该测试属于白盒测试的范畴。
2 测试体系
文件系统是一种存储系统,对于存储系统来说,需要关注的性能有访问接口性能、数据读写性能、聚合带宽、最大并发数、任务数、最大吞吐率、可扩展能力等,本文中的测试任务是测试嵌入式系统内核层文件系统的性能,因此需要测试的性能也相对单一,着重测试访问接口性能和数据读写性能。其中访问接口性能是指各个操作元数据和数据的API 返回速度,单位为API 操作数/s。以Open 函数为例,在应用层新建文件,调用Open函数,就可以通过内核文件函数FS_Open 函数调用驱动层函数,从而调用硬件,完成具体的功能。那么该API的返回速度指发送Open 命令到返回成功所花的时间;数据读写性能是指测定不同文件大小,数据块大小和读写比例的数据读写性能,单位为MB/s,以Read 函数为例,预先在系统中插入存储设备,调用Read 函数来读取该存储设备中的特定大小的文件,通过文件的大小除以读取的时间即可获得读取的速度;当然也可以用time 命令来测试时间,手动去计算速度,测试代码如下:
#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);
}
综上所述,测试体系如下所示:其中应用层的测试代码作用是调用相关的APP 函数,内核层对应函数指的是exfat 文件系统的功能函数,驱动层函数指的是与硬件相连的操作函数。
Exfat 文件系统的接口函数有:
unsigned int fsapitbl[]={
(unsigned int)FOpen,
(unsigned int)FClose,
(unsigned int)FRead,
(unsigned int)FWrite,
(unsigned int)GetLength,
(unsigned int)GetTime,
(unsigned int)ConvertName,
......
};
针对所有的APP 都需要完成接口性能测试,测试其响应时间以及功能的正确性;针对包含Read 和Write的APP 还需要完成读写性能测试,测试其读写速度,并且针对不同的存储设备,不同的文件大小要有不同的测试数据。对于存储系统的其他测试性能,需要联合整个嵌入式系统来测试。
3 测试数据
在ucos 嵌入式平台上测试exfat 的读写性能所得。其中ReadDIO 指用DirectIO 的方式来完成读操作,速度比一般的Read 更快,当然针对不同的应用需求,可能会对内核文件系统系统进行不同的修改,测试时要根据文件系统需求文档和设计文档来设计测试样例。
4 测试结果
通过测试数据的分析,可以看出本文提出的测试方法可以快速全面地测试内核层exfat 文件系统的性能。虽然本文提出的测试方法目前只针对exfat 文件系统,但因为exfat、fat、ntfs 等文件系统基本接口APP 的类似性,本问提出的测试方法也可以拓展到其他文件系统的测试。不过本文的测试方法还未实现全自动的测试,这还需要后续通过配置脚本来实现。