- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈一种在嵌入式内核中测试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;jlt;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 还需要完成读写性能测试,测试其读写速度,并且针对不同的存储设备,不同的文件大小要有不同的测试数据。对于存储系统的其他测试性能,需要联合整个嵌入式系统来测试。
aZV
3 测试数据
在ucos 嵌入式平台上测试exfat 的读写性能所得。其中ReadDIO 指用DirectIO 的方式来完成读操作,速度比一般的Read 更快,当然针对不同的应用需求,可能会对内核文件系统系统进行不同的修改,测试时要根据文件系统需求文档和设计文档来设计测试样例。
4 测试结果
通
- 软件下载与安装、电脑疑难问题解决、office软件处理 + 关注
-
实名认证服务提供商
专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!
文档评论(0)