著录项信息
专利名称 | 利用ZIP压缩格式的虚拟文件系统应用 |
申请号 | CN201110101629.1 | 申请日期 | 2011-04-22 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2011-07-20 | 公开/公告号 | CN102129476A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 上海网达软件有限公司 | 申请人地址 | 上海市浦东新金桥路27号13号楼第3层西侧B单元
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 上海网达软件股份有限公司 | 当前权利人 | 上海网达软件股份有限公司 |
发明人 | 蔡振怀;周后红;李庆瑜 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明涉及一种利用ZIP压缩格式的虚拟文件系统应用,将文件目录进行压缩打包后生成ZIP压缩格式的镜像文件,并由虚拟文件系统接管文件操作,在镜像文件中进行镜像文件解包、映射路径匹配以及选择加载镜像文件内存中,以加速文件访问操作,并对于访问成功的虚拟文件,拷贝虚拟文件映射信息到一个小型数组型的队列中,以加快相同文件的连续访问的效率,实现快存。本发明所述应用ZIP压缩格式的虚拟文件系统的应用所述能够减小IO操作次数,提高读取速度,进而提高应用的安装速度和页面的切换速度,且利用ZIP压缩格式进行打包,不需要专用的工具、额外的授权即可进行,使用方便。
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压缩格式的虚拟文件系统应用\n技术领域\n[0001] 本发明涉及一种基于闪存文件系统读取时的处理方法,尤其涉及一种应用ZIP压缩格式的虚拟文件系统的应用。\n背景技术\n[0002] 手机系统中普遍的数据都是以文件的形式存在于闪存盘上,当应用中涉及到大量的文件读取时,就需要进行大量的文件IO操作。文件的IO操作受限于闪存和闪存控制器的物理特性,决定了对小文件的读取效率不足于闪存盘最高读取效率的1/10到1/100。例如市售的200X高速SD卡对1K块读取速度是1800K/S,对大于32K的文件块的读取效率基本达到最大读取效率22000K/S。同样对于大量小文件拷贝需要比同等大小的单个大文件需要更多的时间。例如1000个从512字节到8K不等的文件拷贝到闪存盘上需要的时间比拷贝单个同大小的大文件需要多消耗10倍以上的时间。\n[0003] 我们希望对现有工程的结构不做更改,不影响现有工程的功能的情况下,添加少量的代码的情况下,快速实现增加文件的访问速度;减少移动大量文件的时间消耗。\n发明内容\n[0004] 本发明要解决的技术问题是,提供一种应用ZIP压缩格式的虚拟文件系统的、能够减小IO操作次数,提高读取速度,且使用方便的应用。\n[0005] 为解决上述问题,本发明提供一种应用ZIP压缩格式的虚拟文件系统的应用,包括以下步骤:\n[0006] 对当前文件目录进行压缩打包,生成ZIP压缩格式的镜像文件;\n[0007] 不改变当前应用的代码对当前的文件操作接口使用宏定义重定向到虚拟文件系统的虚拟文件操作接口上,使虚拟文件系统接管当前应用的文件操作;\n[0008] 虚拟文件系统根据接管的虚拟文件操作接口对需要访问的物理存储路径编码后和镜像映射表中的路径编码进行对比,加速路径匹配;\n[0009] 对镜像文件进行解包,生成包含文件映射信息和路径编码的映射表,挂接到虚拟文件系统中,并映射镜像文件对应的路径,对映射到同一路径下的镜像文件优先级高的将优先被匹配;\n[0010] 选择性加载镜像文件至内存中,使用空间换性能的方法以加速文件访问操作;\n[0011] 对未选择加载至内存中的镜像文件进行一次打开,按需读取\n[0012] 进一步的,对于访问成功的镜像文件,需要匹配文件时优先访问此数组,若匹配成功则不再匹配所述映射表,若匹配不成功则继续匹配所述映射表。\n[0013] 进一步的,虚拟文件系统能够对所述镜像文件实现实时加载或卸载。\n[0014] 进一步的,选择加载至内存中的镜像文件为多个,且多个加载至内存中的镜像文件映射的对应路径为一个或多个。\n[0015] 进一步的,所述映射表使用MD5编码文件的路径信息,MD5编码保存为四个32位变量并排序,匹配时使用二分法搜索,利用32位CPU的特性对路径信息只需要进行四次32位数据的对比。进一步的,对选择加载至内存中的镜像文件进行解包的过程采用开源代码zlib库进行解压。\n[0016] 综上所述,本发明所述应用ZIP压缩格式的虚拟文件系统的应用把多个小文件打包成一个镜像文件,能减少移动文件的时间消耗,尤其在软件的安装,卸载速度显著提高。\n使用内存映射表来访问镜像文件能减少IO次数,还可以选择把镜像加载入内存,使用空间换性能的方法,把对闪存的访问变为对内存的访问,加快访问速度,从而能够减小IO操作次数,提高读取速度,进而提高应用的安装速度和页面的切换速度。且采用ZIP压缩格式进行打包,不需要专用的工具、额外的授权即可进行,使用方便的应用。把多个小文件打包成一个镜像文件,能减少移动文件的时间消耗,尤其在软件的安装,卸载速度显著提高。使用内存映射表来访问镜像文件能减少IO次数,还可以选择把镜像加载入内存,使用空间换性能的方法,把对闪存的访问变为对内存的访问,加快访问速度。\n附图说明\n[0017] 图1为本发明应用ZIP压缩格式的虚拟文件系统的应用的简要流程图。\n[0018] 图2为本发明应用ZIP压缩格式的虚拟文件系统的应用的模块示意图。\n具体实施方式\n[0019] 为使本发明的内容更加清楚易懂,以下结合说明书附图,对本发明的内容作进一步说明。当然本发明并不局限于该具体实施例,本领域内的技术人员所熟知的一般替换也涵盖在本发明的保护范围内。\n[0020] 其次,本发明利用示意图进行了详细的表述,在详述本发明实例时,为了便于说明,示意图不依照一般比例局部放大,不应以此作为对本发明的限定。\n[0021] 图1为本发明应用ZIP压缩格式的虚拟文件系统的应用的简要流程图,图2为本发明应用ZIP压缩格式的虚拟文件系统的应用的模块示意图。请结合图1和图2,本发明提供一种应用ZIP压缩格式的虚拟文件系统的应用,包括以下步骤:\n[0022] 发出文件IO请求:对当前文件目录进行压缩打包,生成ZIP压缩格式的镜像文件;\n所述镜像文件采用各种能生成ZIP压缩包的工具生成,如Windows上的Winzip或Winrar等。压缩格式的镜像文件可以存储在系统存储器的任意位置。\n[0023] 虚拟文件系统接管:虚拟文件系统接管当前应用的文件操作,不改变当前应用的代码对当前文件操作接口使用宏定义重定向到虚拟文件系统的虚拟文件操作接口上;采用宏定义可以使编译器在编译时,使用自定义的虚拟文件接口函数替换现有的同性质的文件操作函数,例如文件的打开,读写,定向,关闭等。\n[0024] 判断是否访问映射路径:虚拟文件系统根据接管的虚拟文件操作接口判断是否需要访问,对需要访问的物理存储路径编码后和镜像映射表中的路径编码进行对比,加速路径匹配。\n[0025] 文件路径匹配算法:在虚拟文件系统中对镜像文件进行解包,生成包含文件映射信息和路径编码的映射表,挂接到虚拟文件系统中,映射镜像文件对应的路径;所述内存映射表记录镜像文件中的文件信息,如根据文件在镜像中的路径和镜像映射路径合成的全路径的MD5编号,文件大小,文件在镜像中的起始位置等,所述内存映射表属于虚拟文件系统的一部分,存储于虚拟文件模块中;所述映射表使用MD5编码文件的路径信息,MD5编码保存为四个32位变量并排序,匹配时使用二分法搜索,利用32位CPU的特性对路径信息只需要进行四次32位数据的对比,加快了速度,减小了存储空间。\n[0026] 判断是否有匹配的虚拟文件:对映射到同一路径下的镜像文件进行匹配,并根据匹配优先级由高到低依次对镜像文件进行访问;\n[0027] 判断是否有对应镜像文件加载至内存中选择性加载镜像文件至内存中,对未选择加载至内存中的镜像文件进行一次打开,按需读取。还可选择加载镜像文件至内存中,使用空间换性能的方法以减少IO操作数,从而大大提高读取速度加速文件访问操作;对未选择加载至内存中的镜像文件,只打开文件,以等待之后根据映射表信息的数据访问。对选择加载的镜像文件进行解包的过程采用开源代码Zlib库进行解压。Zlib属于应用最广的压缩编码库,容易使用。资源占用小。选择加载至内存中的镜像文件为多个,且多个加载至内存中的镜像文件映射的对应路径为一个或多个。\n[0028] 对于访问成功的镜像文件实现快存。对于访问成功的镜像文件拷贝文件映射信息到一个小型数组中,当匹配文件时优先访问此数组,若能匹配成功则不再匹配镜像的映射表以加快相同文件连续访问的效率。镜像文件为一个压缩包,压缩包中含有许多文件,在映射路径时能将这些文件映射成对应的磁盘路径,使用这个虚拟文件系统,我们可以如同访问本地磁盘文件一样访问这些存在于镜像文件文件中的文件,对于频繁访问的文件只需要花费很小的代价查询快存就能的到镜像文件的映射信息,不用每次都去遍历映射表,能增加文件访问的效率。快存是一小块内存,以队列的方式保存多个最后成功打开的虚拟文件的映射信息。所述数组称之为快存,存在于虚拟文件系统里,从而实现了访问成功的镜像文件的快存。\n[0029] 加载镜像文件到虚拟文件系统中时,对镜像文件进行解包生成内存映射表,挂接到虚拟文件系统中,并映射对应路径;每个镜像文件都要生成一个映射表,所述映射表里保存的是镜像文件中所有文件在镜像中的位置、大小、路径等的信息,以便能根据这些信息来访问镜像中的每个文件。镜像文件都存储在闪存中,加载镜像文件时可以选择把镜像文件拷贝份副本到内存中,对有内存副本的镜像则不再访问闪存中的镜像文件,直接访问内存中的镜像文件;对没有加载入内存的镜像,需要调用系统的文件操作接口直接访问闪存中的镜像文件。\n[0030] 镜像文件是通过系统文件接口加载,如果选择把镜像文件加载入内存,那么除了开始时通过系统文件接口把镜像文件整个读入内存之外,之后所有对镜像文件的操作都转为对内存文件的操作,未加载入内存的镜像根据映射表取得的文件信息,使用系统的文件操作接口访问。快存是指保存有一些最后成功访问的虚拟文件映射信息的数组。\n[0031] 进一步的,虚拟文件系统能够对所述镜像文件实现实时加载或卸载。上述方法具有操作的可变性。\n[0032] 综上所述,本发明所述应用ZIP压缩格式的虚拟文件系统的应用把多个小文件打包成一个镜像文件,能减少移动文件的时间消耗,尤其在软件的安装,卸载速度显著提高。\n使用内存映射表来访问镜像文件能减少IO次数,还可以选择把镜像加载入内存,使用空间换性能的方法,把对闪存的访问变为对内存的访问,加快访问速度,从而能够减小IO操作次数,提高读取速度,进而提高应用的安装速度和页面的切换速度。且采用ZIP压缩格式进行打包,不需要专用的工具、额外的授权即可进行,使用方便的应用。把多个小文件打包成一个镜像文件,能减少移动文件的时间消耗,尤其在软件的安装,卸载速度显著提高。使用内存映射表来访问镜像文件能减少IO次数,还可以选择把镜像加载入内存,使用空间换性能的方法,把对闪存的访问变为对内存的访问,加快访问速度。\n[0033] 虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视权利要求书所界定者为准。
法律信息
- 2013-01-16
- 2013-01-09
著录事项变更
申请人由上海网达软件有限公司变更为上海网达软件股份有限公司
地址由201206 上海市浦东新金桥路27号13号楼第3层西侧B单元变更为201206 上海市浦东新金桥路27号13号楼第3层西侧B单元
- 2011-08-31
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201110101629.1
申请日: 2011.04.22
- 2011-07-20
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-02-07
|
2006-08-09
| | |
2
| |
2010-02-03
|
2009-07-14
| | |
3
| | 暂无 |
1996-05-08
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |