利用zip压缩格式的虚拟文件系统应用的制作方法

文档序号:6422898阅读:207来源:国知局
专利名称:利用zip压缩格式的虚拟文件系统应用的制作方法
技术领域
本发明涉及一种基于闪存文件系统读取时的处理方法,尤其涉及一种应用ZIP压 缩格式的虚拟文件系统的应用。
背景技术
手机系统中普遍的数据都是以文件的形式存在于闪存盘上,当应用中涉及到大量 的文件读取时,就需要进行大量的文件IO操作。文件的IO操作受限于闪存和闪存控制器 的物理特性,决定了对小文件的读取效率不足于闪存盘最高读取效率的1/10到1/100。例 如市售的200X高速SD卡对IK块读取速度是1800K/S,对大于32K的文件块的读取效率基 本达到最大读取效率22000K/S。同样对于大量小文件拷贝需要比同等大小的单个大文件需 要更多的时间。例如1000个从512字节到8K不等的文件拷贝到闪存盘上需要的时间比拷 贝单个同大小的大文件需要多消耗10倍以上的时间。我们希望对现有工程的结构不做更改,不影响现有工程的功能的情况下,添加少 量的代码的情况下,快速实现增加文件的访问速度;减少移动大量文件的时间消耗。

发明内容
本发明要解决的技术问题是,提供一种应用ZIP压缩格式的虚拟文件系统的、能 够减小IO操作次数,提高读取速度,且使用方便的应用。为解决上述问题,本发明提供一种应用ZIP压缩格式的虚拟文件系统的应用,包 括以下步骤对当前文件目录进行压缩打包,生成ZIP压缩格式的镜像文件;不改变当前应用的代码对当前的文件操作接口使用宏定义重定向到虚拟文件系 统的虚拟文件操作接口上,使虚拟文件系统接管当前应用的文件操作;虚拟文件系统根据接管的虚拟文件操作接口对需要访问的物理存储路径编码后 和镜像映射表中的路径编码进行对比,加速路径匹配;对镜像文件进行解包,生成包含文件映射信息和路径编码的映射表,挂接到虚拟 文件系统中,并映射镜像文件对应的路径,对映射到同一路径下的镜像文件优先级高的将 优先被匹配;选择性加载镜像文件至内存中,使用空间换性能的方法以加速文件访问操作;对未选择加载至内存中的镜像文件进行一次打开,按需读取进一步的,对于访问成功的镜像文件,需要匹配文件时优先访问此数组,若匹配成 功则不再匹配所述映射表,若匹配不成功则继续匹配所述映射表。进一步的,虚拟文件系统能够对所述镜像文件实现实时加载或卸载。进一步的,选择加载至内存中的镜像文件为多个,且多个加载至内存中的镜像文 件映射的对应路径为一个或多个。进一步的,所述映射表使用MD5编码文件的路径信息,MD5编码保存为四个32位变量并排序,匹配时使用二分法搜索,利用32位CPU的特性对路径信息只需要进行四次32 位数据的对比。进一步的,对选择加载至内存中的镜像文件进行解包的过程采用开源代码 zlib库进行解压。综上所述,本发明所述应用ZIP压缩格式的虚拟文件系统的应用把多个小文件打 包成一个镜像文件,能减少移动文件的时间消耗,尤其在软件的安装,卸载速度显著提高。 使用内存映射表来访问镜像文件能减少IO次数,还可以选择把镜像加载入内存,使用空间 换性能的方法,把对闪存的访问变为对内存的访问,加快访问速度,从而能够减小IO操作 次数,提高读取速度,进而提高应用的安装速度和页面的切换速度。且采用ZIP压缩格式进 行打包,不需要专用的工具、额外的授权即可进行,使用方便的应用。把多个小文件打包成 一个镜像文件,能减少移动文件的时间消耗,尤其在软件的安装,卸载速度显著提高。使用 内存映射表来访问镜像文件能减少IO次数,还可以选择把镜像加载入内存,使用空间换性 能的方法,把对闪存的访问变为对内存的访问,加快访问速度。


图1为本发明应用ZIP压缩格式的虚拟文件系统的应用的简要流程图。图2为本发明应用ZIP压缩格式的虚拟文件系统的应用的模块示意图。
具体实施例方式为使本发明的内容更加清楚易懂,以下结合说明书附图,对本发明的内容作进一 步说明。当然本发明并不局限于该具体实施例,本领域内的技术人员所熟知的一般替换也 涵盖在本发明的保护范围内。其次,本发明利用示意图进行了详细的表述,在详述本发明实例时,为了便于说 明,示意图不依照一般比例局部放大,不应以此作为对本发明的限定。图1为本发明应用ZIP压缩格式的虚拟文件系统的应用的简要流程图,图2为本 发明应用ZIP压缩格式的虚拟文件系统的应用的模块示意图。请结合图1和图2,本发明提 供一种应用ZIP压缩格式的虚拟文件系统的应用,包括以下步骤发出文件IO请求对当前文件目录进行压缩打包,生成ZIP压缩格式的镜像文件; 所述镜像文件采用各种能生成ZIP压缩包的工具生成,如Windows上的Winzip或Winrar 等。压缩格式的镜像文件可以存储在系统存储器的任意位置。虚拟文件系统接管虚拟文件系统接管当前应用的文件操作,不改变当前应用的 代码对当前文件操作接口使用宏定义重定向到虚拟文件系统的虚拟文件操作接口上;采用 宏定义可以使编译器在编译时,使用自定义的虚拟文件接口函数替换现有的同性质的文件 操作函数,例如文件的打开,读写,定向,关闭等。判断是否访问映射路径虚拟文件系统根据接管的虚拟文件操作接口判断是否需 要访问,对需要访问的物理存储路径编码后和镜像映射表中的路径编码进行对比,加速路 径匹配。文件路径匹配算法在虚拟文件系统中对镜像文件进行解包,生成包含文件映射 信息和路径编码的映射表,挂接到虚拟文件系统中,映射镜像文件对应的路径;所述内存映 射表记录镜像文件中的文件信息,如根据文件在镜像中的路径和镜像映射路径合成的全路径的MD5编号,文件大小,文件在镜像中的起始位置等,所述内存映射表属于虚拟文件系统 的一部分,存储于虚拟文件模块中;所述映射表使用MD5编码文件的路径信息,MD5编码保 存为四个32位变量并排序,匹配时使用二分法搜索,利用32位CPU的特性对路径信息只需 要进行四次32位数据的对比,加快了速度,减小了存储空间。判断是否有匹配的虚拟文件对映射到同一路径下的镜像文件进行匹配,并根据 匹配优先级由高到低依次对镜像文件进行访问;判断是否有对应镜像文件加载至内存中选择性加载镜像文件至内存中,对未选择 加载至内存中的镜像文件进行一次打开,按需读取。还可选择加载镜像文件至内存中,使用 空间换性能的方法以减少IO操作数,从而大大提高读取速度加速文件访问操作;对未选择 加载至内存中的镜像文件,只打开文件,以等待之后根据映射表信息的数据访问。对选择加 载的镜像文件进行解包的过程采用开源代码Zlib库进行解压。Zlib属于应用最广的压缩 编码库,容易使用。资源占用小。选择加载至内存中的镜像文件为多个,且多个加载至内存 中的镜像文件映射的对应路径为一个或多个。对于访问成功的镜像文件实现快存。对于访问成功的镜像文件拷贝文件映射信息 到一个小型数组中,当匹配文件时优先访问此数组,若能匹配成功则不再匹配镜像的映射 表以加快相同文件连续访问的效率。镜像文件为一个压缩包,压缩包中含有许多文件,在映 射路径时能将这些文件映射成对应的磁盘路径,使用这个虚拟文件系统,我们可以如同访 问本地磁盘文件一样访问这些存在于镜像文件文件中的文件,对于频繁访问的文件只需要 花费很小的代价查询快存就能的到镜像文件的映射信息,不用每次都去遍历映射表,能增 加文件访问的效率。快存是一小块内存,以队列的方式保存多个最后成功打开的虚拟文件 的映射信息。所述数组称之为快存,存在于虚拟文件系统里,从而实现了访问成功的镜像文 件的快存。加载镜像文件到虚拟文件系统中时,对镜像文件进行解包生成内存映射表,挂接 到虚拟文件系统中,并映射对应路径;每个镜像文件都要生成一个映射表,所述映射表里保 存的是镜像文件中所有文件在镜像中的位置、大小、路径等的信息,以便能根据这些信息来 访问镜像中的每个文件。镜像文件都存储在闪存中,加载镜像文件时可以选择把镜像文件 拷贝份副本到内存中,对有内存副本的镜像则不再访问闪存中的镜像文件,直接访问内存 中的镜像文件;对没有加载入内存的镜像,需要调用系统的文件操作接口直接访问闪存中 的镜像文件。镜像文件是通过系统文件接口加载,如果选择把镜像文件加载入内存,那么除了 开始时通过系统文件接口把镜像文件整个读入内存之外,之后所有对镜像文件的操作都转 为对内存文件的操作,未加载入内存的镜像根据映射表取得的文件信息,使用系统的文件 操作接口访问。快存是指保存有一些最后成功访问的虚拟文件映射信息的数组。进一步的,虚拟文件系统能够对所述镜像文件实现实时加载或卸载。上述方法具 有操作的可变性。综上所述,本发明所述应用ZIP压缩格式的虚拟文件系统的应用把多个小文件打 包成一个镜像文件,能减少移动文件的时间消耗,尤其在软件的安装,卸载速度显著提高。 使用内存映射表来访问镜像文件能减少IO次数,还可以选择把镜像加载入内存,使用空间 换性能的方法,把对闪存的访问变为对内存的访问,加快访问速度,从而能够减小IO操作
5次数,提高读取速度,进而提高应用的安装速度和页面的切换速度。且采用ZIP压缩格式进 行打包,不需要专用的工具、额外的授权即可进行,使用方便的应用。把多个小文件打包成 一个镜像文件,能减少移动文件的时间消耗,尤其在软件的安装,卸载速度显著提高。使用 内存映射表来访问镜像文件能减少IO次数,还可以选择把镜像加载入内存,使用空间换性 能的方法,把对闪存的访问变为对内存的访问,加快访问速度。 虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术 领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此 本发明的保护范围当视权利要求书所界定者为准。
权利要求
1.一种利用ZIP压缩格式的虚拟文件系统应用,其特征在于,包括以下步骤发出文件IO请求,对当前文件目录进行压缩打包,生成ZIP压缩格式的镜像文件;虚拟文件系统接管当前应用的文件操作,不改变当前应用的代码对当前文件操作接口 使用宏定义重定向到虚拟文件系统的虚拟文件操作接口上;虚拟文件系统根据接管的虚拟文件操作接口判断是否需要访问,对需要访问的物理存 储路径编码后和镜像映射表中的路径编码进行对比,加速路径匹配;在虚拟文件系统中对镜像文件进行解包,生成包含文件映射信息和路径编码的映射 表,挂接到虚拟文件系统中,映射镜像文件对应的路径;对映射到同一路径下的镜像文件进行匹配,并根据匹配优先级由高到低依次对镜像文 件进行访问;选择性加载镜像文件至内存中,对未选择加载至内存中的镜像文件进行一次打开,按需读取。
2.如权利要求1所述的利用ZIP压缩格式的虚拟文件系统应用,其特征在于,对于访问 成功的镜像文件,需要匹配文件时优先访问此数组,若匹配成功则不再匹配所述映射表,若 匹配不成功则继续匹配所述映射表。
3.如权利要求1所述的利用ZIP压缩格式的虚拟文件系统应用,其特征在于,虚拟文件 系统能够对所述镜像文件实现实时加载或卸载。
4.如权利要求1所述的利用ZIP压缩格式的虚拟文件系统应用,其特征在于,选择加载 至内存中的镜像文件为多个,且多个加载至内存中的镜像文件映射的对应路径为一个或多 个。
5.如权利要求1所述的利用ZIP压缩格式的虚拟文件系统应用,其特征在于,所述映射 表使用MD5编码文件的路径信息,MD5编码保存为四个32位变量并排序,匹配时使用二分 法搜索,利用32位CPU的特性对路径信息只需要进行四次32位数据的对比。
6.如权利要求1所述的利用ZIP压缩格式的虚拟文件系统应用,其特征在于,对选择加 载至内存中的镜像文件进行解包的过程采用开源代码zlib库进行解压。
全文摘要
本发明涉及一种利用ZIP压缩格式的虚拟文件系统应用,将文件目录进行压缩打包后生成ZIP压缩格式的镜像文件,并由虚拟文件系统接管文件操作,在镜像文件中进行镜像文件解包、映射路径匹配以及选择加载镜像文件内存中,以加速文件访问操作,并对于访问成功的虚拟文件,拷贝虚拟文件映射信息到一个小型数组型的队列中,以加快相同文件的连续访问的效率,实现快存。本发明所述应用ZIP压缩格式的虚拟文件系统的应用所述能够减小IO操作次数,提高读取速度,进而提高应用的安装速度和页面的切换速度,且利用ZIP压缩格式进行打包,不需要专用的工具、额外的授权即可进行,使用方便。
文档编号G06F17/30GK102129476SQ201110101629
公开日2011年7月20日 申请日期2011年4月22日 优先权日2011年4月22日
发明者周后红, 李庆瑜, 蔡振怀 申请人:上海网达软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1