CN102129476A - 利用zip压缩格式的虚拟文件系统应用 - Google Patents
利用zip压缩格式的虚拟文件系统应用 Download PDFInfo
- Publication number
- CN102129476A CN102129476A CN2011101016291A CN201110101629A CN102129476A CN 102129476 A CN102129476 A CN 102129476A CN 2011101016291 A CN2011101016291 A CN 2011101016291A CN 201110101629 A CN201110101629 A CN 201110101629A CN 102129476 A CN102129476 A CN 102129476A
- Authority
- CN
- China
- Prior art keywords
- file
- virtual file
- file system
- image file
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种利用ZIP压缩格式的虚拟文件系统应用,将文件目录进行压缩打包后生成ZIP压缩格式的镜像文件,并由虚拟文件系统接管文件操作,在镜像文件中进行镜像文件解包、映射路径匹配以及选择加载镜像文件内存中,以加速文件访问操作,并对于访问成功的虚拟文件,拷贝虚拟文件映射信息到一个小型数组型的队列中,以加快相同文件的连续访问的效率,实现快存。本发明所述应用ZIP压缩格式的虚拟文件系统的应用所述能够减小IO操作次数,提高读取速度,进而提高应用的安装速度和页面的切换速度,且利用ZIP压缩格式进行打包,不需要专用的工具、额外的授权即可进行,使用方便。
Description
技术领域
本发明涉及一种基于闪存文件系统读取时的处理方法,尤其涉及一种应用ZIP压缩格式的虚拟文件系统的应用。
背景技术
手机系统中普遍的数据都是以文件的形式存在于闪存盘上,当应用中涉及到大量的文件读取时,就需要进行大量的文件IO操作。文件的IO操作受限于闪存和闪存控制器的物理特性,决定了对小文件的读取效率不足于闪存盘最高读取效率的1/10到1/100。例如市售的200X高速SD卡对1K块读取速度是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操作次数,提高读取速度,进而提高应用的安装速度和页面的切换速度。且采用ZIP压缩格式进行打包,不需要专用的工具、额外的授权即可进行,使用方便的应用。把多个小文件打包成一个镜像文件,能减少移动文件的时间消耗,尤其在软件的安装,卸载速度显著提高。使用内存映射表来访问镜像文件能减少IO次数,还可以选择把镜像加载入内存,使用空间换性能的方法,把对闪存的访问变为对内存的访问,加快访问速度。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视权利要求书所界定者为准。
Claims (6)
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库进行解压。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110101629 CN102129476B (zh) | 2011-04-22 | 2011-04-22 | 利用zip压缩格式的虚拟文件系统应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110101629 CN102129476B (zh) | 2011-04-22 | 2011-04-22 | 利用zip压缩格式的虚拟文件系统应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102129476A true CN102129476A (zh) | 2011-07-20 |
CN102129476B CN102129476B (zh) | 2013-01-16 |
Family
ID=44267558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110101629 Active CN102129476B (zh) | 2011-04-22 | 2011-04-22 | 利用zip压缩格式的虚拟文件系统应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102129476B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682129A (zh) * | 2012-05-17 | 2012-09-19 | 北京像素软件科技股份有限公司 | 一种基于虚拟文件系统的数据读取方法 |
CN102890705A (zh) * | 2012-08-24 | 2013-01-23 | 东莞宇龙通信科技有限公司 | 一种存储介质的管理方法、系统及移动终端 |
CN103020199A (zh) * | 2012-12-05 | 2013-04-03 | 上海创图网络科技发展有限公司 | 适用于不同操作系统平台的虚拟文件系统及其应用 |
CN103390033A (zh) * | 2013-07-09 | 2013-11-13 | 天津南大通用数据技术股份有限公司 | 商务智能数据模板及其生成、混合及离线使用方法 |
CN106202350A (zh) * | 2016-07-05 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件系统自动精简配置的方法及系统 |
CN110058873A (zh) * | 2019-03-12 | 2019-07-26 | 天津五八到家科技有限公司 | 应用页面更新方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997042558A2 (en) * | 1996-05-08 | 1997-11-13 | Mijenix Corporation | A device driver for accessing computer files |
CN1908937A (zh) * | 2006-08-09 | 2007-02-07 | 华为技术有限公司 | 一种闪存中的flash文件的管理方法及系统 |
CN101639782A (zh) * | 2009-07-14 | 2010-02-03 | 上海市共进通信技术有限公司 | 基于嵌入式操作系统的系统引导载入方法 |
-
2011
- 2011-04-22 CN CN 201110101629 patent/CN102129476B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997042558A2 (en) * | 1996-05-08 | 1997-11-13 | Mijenix Corporation | A device driver for accessing computer files |
US5907703A (en) * | 1996-05-08 | 1999-05-25 | Mijenix Corporation | Device driver for accessing computer files |
CN1908937A (zh) * | 2006-08-09 | 2007-02-07 | 华为技术有限公司 | 一种闪存中的flash文件的管理方法及系统 |
CN101639782A (zh) * | 2009-07-14 | 2010-02-03 | 上海市共进通信技术有限公司 | 基于嵌入式操作系统的系统引导载入方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682129A (zh) * | 2012-05-17 | 2012-09-19 | 北京像素软件科技股份有限公司 | 一种基于虚拟文件系统的数据读取方法 |
CN102890705A (zh) * | 2012-08-24 | 2013-01-23 | 东莞宇龙通信科技有限公司 | 一种存储介质的管理方法、系统及移动终端 |
CN103020199A (zh) * | 2012-12-05 | 2013-04-03 | 上海创图网络科技发展有限公司 | 适用于不同操作系统平台的虚拟文件系统及其应用 |
CN103390033A (zh) * | 2013-07-09 | 2013-11-13 | 天津南大通用数据技术股份有限公司 | 商务智能数据模板及其生成、混合及离线使用方法 |
CN106202350A (zh) * | 2016-07-05 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件系统自动精简配置的方法及系统 |
CN110058873A (zh) * | 2019-03-12 | 2019-07-26 | 天津五八到家科技有限公司 | 应用页面更新方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102129476B (zh) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105103137B (zh) | 数据存储系统的数据的压缩和格式化 | |
CN109085997B (zh) | 用于非易失性存储器的存储器高效持续键值储存 | |
CN102129476B (zh) | 利用zip压缩格式的虚拟文件系统应用 | |
CN105074676B (zh) | 数据存储系统的数据的多个流压缩和格式化 | |
CN103488709B (zh) | 一种索引建立方法及系统、检索方法及系统 | |
US8910017B2 (en) | Flash memory with random partition | |
US8538936B2 (en) | System and method for data compression using compression hardware | |
CN101526923B (zh) | 一种数据处理方法、装置和闪存存储系统 | |
EP2630573B1 (en) | Methods and devices for reducing compressed page loading time on page fault | |
CN108205499B (zh) | 用于将数据处理转移到混合存储设备的方法和装置 | |
CN101464834B (zh) | 闪存数据写入方法及使用此方法的控制器 | |
CN103164490B (zh) | 一种不固定长度数据的高效存储实现方法和装置 | |
US9274978B2 (en) | Migration of encrypted data for data storage systems | |
US20110145486A1 (en) | Memory management device and method | |
US9141626B2 (en) | Volume having tiers of different storage traits | |
CN101206618A (zh) | 融合式存储器设备及方法 | |
US10579591B1 (en) | Incremental block compression | |
KR20130018602A (ko) | Key-value 스토어를 포함하는 메모리 시스템 | |
US20140281227A1 (en) | Provisioning in heterogenic volume of multiple tiers | |
CN101986305A (zh) | 一种文件系统的操作方法及一种通信装置 | |
US20140280392A1 (en) | File system operation on multi-tiered volume | |
EP2972747A1 (en) | Data storage, file and volume system providing mutliple tiers | |
US20150074360A1 (en) | Scheduler for memory | |
CN105824881A (zh) | 一种基于负载均衡的重复数据删除数据放置方法器 | |
CN115756312A (zh) | 数据访问系统、数据访问方法和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: 201206 B unit, West Third, building 27, new Jinqiao Road, No. 13, Shanghai, Pudong Applicant after: Shanghai Wondertek Software Co., Ltd. Address before: 201206 B unit, West Third, building 27, new Jinqiao Road, No. 13, Shanghai, Pudong Applicant before: Shanghai Wondertek Software Co.,Ltd. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |