1.本技术涉及计算机
技术领域:
:,具体涉及一种文件管理方法、装置、存储介质及终端。
背景技术:
::2.目前,终端中经常采用可扩展只读文件系统(extendableread-onlyfilesystem,erofs)。erofs中的数据是压缩存放,如此可以减少数据占用空间,且可以提升随机读取性能。3.相关技术中,erofs的格式化工具对于镜像文件的默认处理是:对于镜像文件中可以被压缩的各种类型的文件会选择全部压缩的“暴力”压缩策略手法,这种压缩策略可以提高镜像文件整体的压缩率,但是,不同文件在压缩之后的表现效果不同,且在erofs中,顺序读性能表现与文件压缩效果好坏强相关,当部分文件的压缩效果较差时,采取全部压缩的压缩策略会影响erofs的顺序读写性能。技术实现要素:4.本技术实施例提供一种文件管理方法、装置、存储介质及终端,可以提高文件系统的顺序读性能。5.本技术实施例提供了一种文件管理方法,包括:6.获取至少一待压缩文件;7.基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;8.根据各待压缩文件的初始文件大小与所述目标缓存大小确定各待压缩文件的文件压缩比率;9.从所述至少一待压缩文件中确定文件压缩比率大于所述指定文件系统的参考压缩比率的目标文件;10.将所述目标文件从所述至少一待压缩文件中剔除,以使不通过所述指定压缩算法对所述目标文件进行压缩。11.相应的,本技术实施例还提供了一种文件管理装置,包括:12.获取单元,用于获取至少一待压缩文件;13.预测单元,用于基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;14.第一确定单元,用于根据各待压缩文件的初始文件大小与所述目标缓存大小确定各待压缩文件的文件压缩比率;15.第二确定单元,用于从所述至少一待压缩文件中确定文件压缩比率大于所述指定文件系统的参考压缩比率的目标文件;16.剔除单元,用于将所述目标文件从所述至少一待压缩文件中剔除,以使不通过所述指定压缩算法对所述目标文件进行压缩。17.在一些实施例中,预测单元包括:18.第一确定子单元,用于根据所述文件索引信息确定所述待压缩文件的文件数据;19.第一获取子单元,用于确定所述指定文件系统中应用于文件压缩处理的缓冲区;20.处理子单元,用于将所述文件数据传入所述缓冲区进行压缩处理,确定所述压缩处理在所述缓冲区占用的缓冲区块的块数;21.第二确定子单元,用于基于所述缓冲区块的缓存大小与所述块数确定所述目标缓存大小。22.在一些实施例中,处理子单元具体用于:23.获取所述缓冲区的起始缓冲区块号;24.调用所述指定压缩算法对所述文件数据执行压缩处理,得到压缩处理后对应的目标缓冲区块号;25.基于所述起始缓冲区块号与所述目标缓冲区块号计算得到所述块数。26.在一些实施例中,第一确定单元包括:27.计算子单元,用于计算所述目标缓存大小与所述初始文件大小的比值,得到所述文件压缩比率。28.在一些实施例中,第二确定单元包括:29.第三确定子单元,用于确定所述指定文件系统的参考压缩比率;30.第四确定子单元,用于将各待压缩文件的文件压缩比率与所述参考压缩比率进行比较,确定文件压缩比率大于所述参考压缩比率的待压缩文件,得到所述目标文件。31.在一些实施例中,第三确定子单元具体用于:32.获取指定文件系统的目标文件分区中各文件的实际文件压缩比率;33.对各文件的实际文件压缩比率按照预设规则进行排序,得到排序后实际文件压缩比率;34.获取所述目标分区中各文件在所述指定文件系统的第一读写性能,以及在其他文件系统的第二读写性能;35.将所述第一读写性能与所述第二读写性能进行比较,得到比较结果;36.基于所述比较结果从所述排序后实际文件压缩比率中确定所述参考压缩比率。37.在一些实施例中,该装置还包括:38.处理单元,用于通过所述指定压缩算法对所述至少一待压缩文件中除所述目标文件之外的文件进行压缩处理。39.相应的,本技术实施例还提供了一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行如上所述的文件管理方法。40.相应的,本技术实施例还提供了一种终端,包括处理器和存储器,所述存储器存储有多条指令,所述处理器加载所述指令以执行如上所述的文件管理方法。41.本技术实施例通过在erofs系统镜像格式化过程中新增带有“预压缩”功能的仲裁管控模块,通过该仲裁管控模块计算待压缩文件的文件压缩比率,并将文件压缩比率与最优文件压缩比率进行比较,基于比较结果从待压缩文件中筛选出文件压缩比率较大的目标文件,对于目标文件不执行压缩处理,可以改善erofs系统中文件压缩的负优化问题,从而提高erofs的顺序读写性能。附图说明42.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。43.图1为本技术实施例提供的一种文件管理方法的流程示意图。44.图2为本技术实施例提供的另一种文件管理方法的流程示意图。45.图3为本技术实施例提供的一种文件管理装置的结构框图。46.图4为本技术实施例提供的终端的结构示意图。具体实施方式47.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。48.本技术实施例提供一种文件管理方法、装置、存储介质及计算机设备。具体地,本技术实施例的文件管理方法可以由终端执行。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、个人计算机(pc,personalcomputer)、个人数字助理(personaldigitalassistant,pda)等终端设备。49.例如,该终端可以获取至少一待压缩文件;基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;根据各待压缩文件的初始文件大小与目标缓存大小确定各待压缩文件的文件压缩比率;从至少一待压缩文件中确定文件压缩比率大于指定文件系统的参考压缩比率的目标文件;将目标文件从至少一待压缩文件中剔除,以使不通过指定压缩算法对目标文件进行压缩。50.基于上述问题,本技术实施例提供一种文件管理方法、装置、存储介质及终端,可以提高文件系统的顺序读性能。以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。51.请参考图1,图1为本技术实施例提供的一种文件管理方法的流程示意图。以该文件管理方法应用于终端为例,该文件管理方法的具体流程可以如下:52.101、获取至少一待压缩文件。53.其中,待压缩文件指的是需要通过指定文件系统进行压缩处理的文件,待压缩文件可以为指定文件系统内部的文件。54.102、基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小。55.其中,文件索引信息指的是索引节点(inode),索引节点是一种数据结构,其本质是结构体,包含了与文件系统中各个文件相关的一些重要信息,索引节点中存储了每个文件或目录的一些文件信息,比如,文件创建时间、文件大小等。在文件系统里,一个文件或者目录对应磁盘布局上一个特有的inode号,作为文件或者目录的标识。56.其中,指定文件系统可以为erofs(extendableread-onlyfilesystem,可扩展只读文件系统)文件系统。57.具体的,在指定文件中,通过获取待压缩文件的文件索引信息,可以对待压缩文件进行预压缩处理。58.在本技术实施例中,预压缩处理可以表示对待压缩文件的一个模拟压缩处理过程,预压缩处理与实际压缩过程不相同,预压缩处理在对文件进行压缩之后并不会将压缩过后的文件数据写到磁盘块上,可以节省磁盘空间,通过预压缩处理可以计算出各个待压缩文件压缩过后的文件压缩比率。59.其中,文件压缩比率指的是文件压缩后的大小与压缩前的大小之比,比如,对于初始文件大小为100m的文件进行压缩处理,压缩后文件大小为90m,则文件压缩比率为:90/100*100%=90%,文件压缩比率一般是越小越好。60.在一些实施例中,为了提高计算待压缩文件的文件压缩比率的准确性,步骤“基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小”,可以包括以下操作:61.根据文件索引信息确定待压缩文件的文件数据;62.确定指定文件系统中应用于文件压缩处理的缓冲区;63.将文件数据传入缓冲区进行压缩处理,确定压缩处理在缓冲区占用的缓冲区块的块数;64.基于缓冲区块的缓存大小与块数确定目标缓存大小。65.具体的,根据文件索引信息确定待压缩文件的文件数据,可以首先基于文件索引信息获取待压缩文件的文件描述符,然后通过文件描述符读取待压缩文件的文件数据。66.其中,文件描述符(filedescription)为调用open函数(用于打开和创建文件)时返回得到的每个文件对应的用于文件读写的一个标识符。文件描述符在形式上可以为一个非负整数,实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。67.具体的,通过打开索引节点的src_path获取文件描述符,其中,src_path指的是指定文件系统格式化相关只读分区对应的镜像文件时,传进去的要压缩到对应镜像文件里的源目录的真实路径。68.具体的,通过文件描述符可以读取待压缩文件的文件数据,其中,读取的文件数据的长度可以根据待压缩文件的总长度确定。由于指定文件系统中,用于压缩处理的缓冲区的缓存大小有限,当待压缩文件的文件数据过大时,可以将文件数据划分为多个数据包,然后分为多轮压缩进行处理。69.进一步的,确定指定文件系统中应用于文件压缩处理的缓冲区(buffer),然后将通过文件描述符读取到的文件数据传入缓冲区进行压缩处理,以确定压缩处理后待压缩文件在缓冲区占用的缓冲区块的块数。70.在一些实施例中,步骤“将文件数据传入缓冲区进行压缩处理,确定压缩处理在缓冲区占用的缓冲区块的块数”,可以包括以下操作:71.获取缓冲区的起始缓冲区块号;72.调用指定压缩算法对文件数据执行压缩处理,得到压缩处理后对应的目标缓冲区块号;73.基于起始缓冲区块号与目标缓冲区块号计算得到块数。74.其中,起始缓冲区块号可以通过缓冲区的起始地址得到,缓冲区可以划分为多个缓冲区块,不同缓冲区块可以对应不同的块号。75.进一步的,调用指定文件系统中的指定压缩算法对应的压缩模块对待压缩文件的文件数据执行压缩过程,在完成压缩处理后,得到更新的缓冲区块号,也即目标缓冲区块号。76.在本技术实施例中,对待压缩文件进行压缩前会保留所申请的缓冲区的起始缓冲区块号,每一轮具体压缩的过程中都会更新缓冲区的缓冲区块号,直至最后一轮压缩结束。则基于起始缓冲区块号与目标缓冲区块号计算得到块数可以用目标缓冲区块号减去此前保留的起始缓冲区块号,从而得到整个待压缩文件压缩过后所占用的缓冲区块的块数。77.具体的,基于缓冲区块的缓存大小与块数确定目标缓存大小可以通过文件压缩过后所占用的块数乘以每一缓冲区块的大小,得到目标缓存大小,也即整个待压缩文件压缩过后的大小。78.例如,占用的缓冲区块的块数可以为:4,缓冲区块的大小可以为:4*1024bytes即4kb,则计算目标缓存大小可以为:4*4kb=16kb。79.103、根据各待压缩文件的初始文件大小与目标缓存大小确定各待压缩文件的文件压缩比率。80.在一些实施例中,步骤“根据各待压缩文件的初始文件大小与目标缓存大小确定各待压缩文件的文件压缩比率”,可以包括以下步骤:81.计算目标缓存大小与初始文件大小的比值,得到文件压缩比率。82.其中,目标缓存大小也即指的是待处理文件通过预压缩处理后的压缩后文件大小,则计算待压缩文件的文件压缩比率可以通过:待压缩文件的压缩后文件大小/压缩前文件大小。83.其中,压缩前文件大小也即待压缩文件的初始文件大小,初始文件大小可以通过待压缩文件的文件索引信息获取得到。84.例如,待处理文件通过预压缩处理后的压缩后文件大小可以为:16kb,获取到待压缩文件压缩前文件大小可以为:20kb,则计算待压缩文件的文件压缩比率可以为:16kb/20kb*100%=80%。85.104、从至少一待压缩文件中确定文件压缩比率大于指定文件系统的参考压缩比率的目标文件。86.在本技术实施例中,在指定文件系统镜像格式化过程中,设计判断逻辑,用于判断是否需要对待压缩文件进行实际压缩处理,可以改善指定文件系统在顺序读性能方面普遍存在的部分场景“负优化”问题。87.具体的,计算得到各个待压缩文件的文件压缩比率后,可以根据文件压缩比率判断是否需要对待压缩文件进行实际压缩处理。88.在一些实施例中,为了提高判断准确率,步骤“从待压缩文件中确定文件压缩比率大于指定文件系统的参考压缩比率的目标文件”,可以包括以下操作:89.确定指定文件系统的参考压缩比率;90.将各待压缩文件的文件压缩比率与参考压缩比率进行比较,确定文件压缩比率大于参考压缩比率的待压缩文件,得到目标文件。91.首先,需要获取指定文件系统的参考压缩比率,也即最佳文件压缩比率。通过参考压缩比率检测待压缩文件是否需要真正进行压缩处理。92.具体的,将计算得到的各个待压缩文件的文件压缩率与参考压缩比率进行比较,本方案的主要目标是为了筛选出压缩效果较差的文件,则可以选取出文件压缩率大于参考压缩比率的待压缩文件,得到无需进行实际压缩处理的目标文件。93.在一些实施例中,为了进一步提高判断准确率,步骤“确定指定文件系统的参考压缩比率”,可以包括以下步骤:94.获取指定文件系统的目标文件分区中各文件的实际文件压缩比率;95.对各文件的实际文件压缩比率按照预设规则进行排序,得到排序后实际文件压缩比率;96.获取目标分区中各文件在指定文件系统的第一读写性能,以及在其他文件系统的第二读写性能;97.将第一读写性能与第二读写性能进行比较,得到比较结果;98.基于比较结果从排序后实际文件压缩比率中确定参考压缩比率。99.在本技术实施例中,决定每一个文件是否真正压缩的最佳文件压缩比率是非常重要的,最佳文件压缩比率用于衡量是否对文件进行实际压缩处理的标准。则在确定该最佳文件压缩比率可以通过严格的大数据统计方法来得到这个标准值。100.具体确定最佳文件压缩比率的方法可以为:在将镜像文件里所有文件全部进行压缩了的指定文件系统的系统环境中,利用专门的脚本工具将/system分区和/vendor分区下所有各种类型的文件按实际文件压缩比率大小排序统计出来,然后借助文件系统专门的io性能测试工具(fio)分别测试读这些文件的顺序读性能,再与其他文件系统进行比较,找出具体转折点,即相比于其他文件系统,在指定文件系统中顺序读性能首次出现“负优化”的点,最后获取“负优化”的点对应的实际文件压缩比率作为最佳文件压缩比率。101.具体实现步骤可以为:在指定文件系统默认全压缩模式的情况下,通过相应的脚本工具统计出只读分区/system和/vendor下所有.apk和.so文件的文件压缩比率,然后对于文件压缩比率按照从大到小的顺序排列,并按照90%~100%、80%~90%、70%~80%...做好具体文件的压缩比率区间划分。然后通过fio性能测试工具对比测试读具体区间内部的文件时的顺序读性能,与未导入指定文件系统前的其他文件系统作对比。其中,指定文件系统读性能提升的大致原理为:文件压缩比率越小即文件压缩效果越好的文件,io性能相比于其他文件系统的提升效果就越明显,故会出现一个“转折点”,也即在读所有文件压缩比率小于该转折点的文件压缩比率的文件时,io性能相比于其他文件系统都是有提升的。但是当读文件压缩比率高于该“转折点”的文件压缩比率的文件(即文件本身压缩效果较差)时,会出现io性能表现不如其他文件系统的“负优化”情况,基于出现“负优化”情况时的“转折点”对应的文件压缩比率,得到最佳文件压缩比率。102.在本技术实施例中,确定参考压缩比率的原理为:指定文件系统相比于其他文件系统性能提升的关键点基本可概括为,通过压缩可减少在文件读取过程中的真正io量,以此减少了io耗时,但与此同时,会新增一个解压缩过程,这会带来额外耗时,二者平衡之下得到的最终io耗时减少即为性能提升的主要原因。故针对于文件压缩效果越好的文件,这种提升会越明显,因为相比于原本未压缩的其他文件系统,此时文件读取过程中的真正io量会有一个很大幅度的减少,而新增的解压缩过程带来的额外io开销并不多;相反地,针对于文件压缩效果很差的文件,指定文件系统相比于原生其他文件系统性能不仅没有提升,反倒还会有一定程度的下降。同理,由于文件压缩效果很差,即文件压缩后的大小与文件未压缩时相比大小并没有一个很明显的下降,故此时文件读取过程中真正io量的减少幅度也非常有限,但与此同时,新增的解压缩过程还带来了额外的io耗时,二者平衡下来得到的最终性能表现就会稍差于原本的其他文件系统。103.105、将目标文件从至少一待压缩文件中剔除,以使不通过指定压缩算法对目标文件进行压缩。104.具体的,从所有待压缩文件中过滤掉目标文件,则在后续实际压缩处理过程中,不执行对于目标文件的压缩处理,可以避免目标文件压缩处理的“负优化”问题,从而提高指定文件系统的顺序读性能。105.在一些实施例中,该方法还可以包括以下步骤:106.通过指定压缩算法对至少一待压缩文件中除目标文件之外的文件进行压缩处理;107.具体的,对于过滤掉目标文件的剩余待压缩文件进行实际压缩处理,以实现指定文件系统的文件压缩处理。108.本技术实施例公开了一种文件管理方法,该文件管理方法包括:获取至少一待压缩文件;基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;根据各待压缩文件的初始文件大小与目标缓存大小确定各待压缩文件的文件压缩比率;从至少一待压缩文件中确定文件压缩比率大于指定文件系统的参考压缩比率的目标文件;将目标文件从至少一待压缩文件中剔除,以使不通过指定压缩算法对目标文件进行压缩。通过在指定文件系统镜像格式化过程中新增带有“预压缩”功能的仲裁管控模块,通过该仲裁管控模块计算待压缩文件的文件压缩比率,并将文件压缩比率与最优文件压缩比率进行比较,基于比较结果从待压缩文件中筛选出文件压缩比率较大的目标文件,对于目标文件不执行压缩处理,可以改善指定文件系统中文件压缩的负优化问题,从而提高指定文件系统的顺序读写性能。109.参考图2,图2为本技术实施例提供的另一种文件管理方法的流程示意图。以该文件管理方法应用于终端为例。该文件管理方法的具体可以如下:110.201、终端接收针对erofs文件系统的文件压缩指令,根据文件压缩指令获取待压缩文件。111.其中,文件压缩指令指示对erofs文件系统在镜像文件格式化过程中对于镜像中的文件进行压缩。则待压缩文件也即指的是镜像中的文件。112.在接收到文件压缩指令后,首先进行压缩初始化,包括:通过erofs文件系统的初始化工具默认配置项,解析传入的选项,加载压缩过程相关的hints(hints指erofs文件系统的格式化工具中与每个文件的压缩策略相关的一个配置文件,压缩时需要先读取加载里面的相关内容,默认是未开启的),初始化压缩模块以及主要的压缩算法,完成压缩过程相关的各项配置。113.进一步的,获取待压缩文件的相关信息,包括:通过src_path构建格式化所用的tree(指通过传进去的根目录路径得到的根目录下对应的各子目录以及各具体文件的“树映射“关系,类似于层级目录、层级文件),通过src_path获取待压缩文件的inode,通过传入的inode进行具体的tree构建工作。114.然后根据待压缩文件的索引节点判断待压缩文件是否需要进行压缩处理,包括:对于传入的待压缩文件对应的inode,判断在调用格式化工具时是否指定了具体的压缩算法(lz4、lz4hc、lzma等)以及该待压缩文件是否属于可压缩文件的范畴(通过一个专用的配置文件来管控每个文件的压缩策略决定每个文件是否属于可压缩文件范畴),以及本方案设计的压缩处理管控策略。115.202、终端对待压缩文件进行预压缩处理,得到待压缩文件的实际文件压缩比率。116.具体的,压缩处理管控策略实现如下:打开待压缩文件的src_path获取文件描述符,获取文件系统中就进行压缩处理所用的buffer的起始地址(起始块号),然后通过inode获取待压缩文件的初始文件大小,也即压缩前的文件大小,通过文件描述符读取指定长度的待压缩文件的文件数据放到所用的buffer中进行预压缩处理。117.其中,预压缩处理流程可以如下:首先做第一轮压缩,获取第一轮压缩需要压缩的文件数据长度,获取调用具体压缩算法时每次压缩的缓冲区块的块数,调用具体压缩算法对应的压缩模块执行压缩过程,完成第一轮压缩过程后,更新buffer的块号,并执行第一轮压缩过后的后处理(包括首尾指针以及数据长度);118.然后,判断数据长度是否为0,若数据长度为0,则继续判断整个待压缩文件是否完成预压缩处理,若整个待压缩文件完成预压缩处理,则做最后一轮压缩,通过压缩过后的buffer的块号计算整个待压缩文件预压缩处理后占用的块数(在文件开始压缩前会保留所申请的databuffer(数据缓存)的起始块地址(号),每一轮具体压缩的过程中都会更新databuffer的块地址(号),待最后一轮压缩结束后,用此时databuffer的块地址(号)减去此前保留的起始块地址(号),即为“整个文件压缩过后所占用的块数”),通过待处理文件压缩后所占用的块数计算待处理文件压缩后的文件大小(通过文件压缩过后所占用的块数乘以每一块的大小(固定值4*1024bytes即4kb)即可得到整个文件压缩过后的大小),最后,根据待压缩文件的压缩前文件大小与预压缩处理后文件大小计算待处理压缩文件的文件压缩比率,以得到待压缩文件的实际文件压缩比率。119.其中,在完成第一轮压缩后,若数据长度不为0,或者整个待压缩文件未完成压缩,则可以继续执行第二轮、第三轮压缩...直至整个待压缩文件完成压缩,以得到准确的压缩处理所占的buffer的块数。120.203、终端将待压缩文件的实际文件压缩比率与erofs文件系统的最优文件压缩比率进行比较,判断是否需要对待压缩文件进行实际压缩处理。121.在计算得到待压缩文件的实际文件压缩比率后,可以将实际压缩比率与最优压缩文件比率进行比较根据比较结果判断是否需要对待压缩文件进行实际压缩处理。122.其中,最优压缩比率的计算过程可以参见上述实施例,在此不多做赘述。123.在本技术实施例中,可以将最佳文件压缩比率参数n(阈值)设计为不同平台在调用格式化工具时可配置传入的。具体的,针对于不同的平台,由于底层存储器件等方面存在的差异,最佳文件压缩比率参数n(阈值)可能不同。在大数据统计方法得到每个平台具体的最佳文件压缩比率参数n(阈值)后,可在编译过程中调用erofs统一格式化脚本时作为脚本选项传入,以此实现对最佳文件压缩比率参数n(阈值)的手动配置与灵活管控,以及erofs在各平台之间的强大可移植性。124.具体的,若比较结果指示实际文件压缩比率大于最优文件压缩比率,则可以确定需要对待压缩文件进行实际压缩处理,进一步执行步骤204;若比较结果指示实际文件压缩比率小于或者等于最优文件压缩比率,则可以确定不需要对待压缩文件进行实际压缩处理,进一步执行步骤205。125.204、终端对待压缩文件进行压缩处理,并将压缩处理后的待压缩文件写入存储空间。126.具体的,对待压缩文件执行压缩处理,得到压缩后文件,将压缩后文件的文件数据写入底层磁盘块。127.205、终端将未压缩处理的待压缩文件直接写入存储空间。128.具体的,对待压缩文件不执行压缩处理,直接将待压缩文件的文件数据写入底层磁盘块。129.本方案通过新增带有“预压缩”功能的仲裁管控模块,严格管控在镜像格式化过程中是否对于其中的每个文件真正压缩,以此改善erofs在顺序读性能方面普遍存在的部分场景“负优化”问题;另一方面严格利用大数据统计的方法找出新增的判断逻辑中的最佳文件压缩比率参数n(阈值),以此实现既能最大程度利用erofs最大特点“压缩”带来的系统io性能提升,又能有效避免因部分文件压缩效果较差可能会带来的系统顺序读性能损耗。130.其中,本方案添加的对于每个文件压缩过后压缩率好坏的仲裁判断逻辑,对于那些压缩过后压缩效果较差的文件我们可以选择不压缩的方式,只对那种压缩过后压缩效果较好的文件才真正进行压缩。经过统计发现,这种压缩过后压缩效果较差的文件相对于整个系统只读分区所有文件所占的比例是很少的,所以这种方式对于erofs对于镜像文件整体的压缩率的影响较小,同时,如果采用了这种方式,就能很大程度解决前面出现的erofs相对于原本ext4顺序读性能出现“负优化”的情况,因为原本ext4对于每个文件本身就是不带有压缩的,现在对于那些文件压缩效果很差的文件erofs也选择不压缩,最后在测试读这种文件的系统整体顺序读性能时,两者测到的结果应是相差不大的。131.本技术实施例公开了一种文件管理方法,本方案通过终端接收针对erofs文件系统的文件压缩指令,根据文件压缩指令获取待压缩文件,对待压缩文件进行预压缩处理,得到待压缩文件的实际文件压缩比率,将待压缩文件的实际文件压缩比率与erofs文件系统的最优文件压缩比率进行比较,判断是否需要对待压缩文件进行实际压缩处理;若需要对待压缩文件进行实际压缩处理,则对待压缩文件进行压缩处理,并将压缩处理后的待压缩文件写入存储空间;若不需要对待压缩文件进行实际压缩处理,则将未压缩处理的待压缩文件直接写入存储空间。以此,可以改善erofs在顺序读性能方面普遍存在的部分场景“负优化”问题。132.为便于更好的实施本技术实施例提供的文件管理方法,本技术实施例还提供一种基于上述文件管理方法的装置。其中名词的含义与上述文件管理方法中相同,具体实现细节可以参考方法实施例中的说明。133.请参阅图3,图3为本技术实施例提供的一种文件管理装置的结构框图,该文件管理装置可以应用于诸如手机、平板电脑、笔记本电脑,掌上电脑、便携式媒体播放器(portablemediaplayer,pmp)等移动终端,以及诸如台式计算机等固定终端,该装置可以包括:134.获取单元301,用于获取至少一待压缩文件;135.预测单元302,用于基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;136.第一确定单元303,用于根据各待压缩文件的初始文件大小与所述目标缓存大小确定各待压缩文件的文件压缩比率;137.第二确定单元304,用于从所述至少一待压缩文件中确定文件压缩比率大于所述指定文件系统的参考压缩比率的目标文件;138.剔除单元305,用于将所述目标文件从所述至少一待压缩文件中剔除,以使不通过所述指定压缩算法对所述目标文件进行压缩。139.在一些实施例中,预测单元302可以包括:140.第一确定子单元,用于根据所述文件索引信息确定所述待压缩文件的文件数据;141.第一获取子单元,用于确定所述指定文件系统中应用于文件压缩处理的缓冲区;142.处理子单元,用于将所述文件数据传入所述缓冲区进行压缩处理,确定所述压缩处理在所述缓冲区占用的缓冲区块的块数;143.第二确定子单元,用于基于所述缓冲区块的缓存大小与所述块数确定所述目标缓存大小。144.在一些实施例中,处理子单元具体可以用于:145.获取所述缓冲区的起始缓冲区块号;146.调用所述指定压缩算法对所述文件数据执行压缩处理,得到压缩处理后对应的目标缓冲区块号;147.基于所述起始缓冲区块号与所述目标缓冲区块号计算得到所述块数。148.在一些实施例中,第一确定单元303可以包括:149.计算子单元,用于计算所述目标缓存大小与所述初始文件大小的比值,得到所述文件压缩比率。150.在一些实施例中,第二确定单元包括:151.第三确定子单元,用于确定所述指定文件系统的参考压缩比率;152.第四确定子单元,用于将各待压缩文件的文件压缩比率与所述参考压缩比率进行比较,确定文件压缩比率大于所述参考压缩比率的待压缩文件,得到所述目标文件。153.在一些实施例中,第三确定子单元具体可以用于:154.获取指定文件系统的目标文件分区中各文件的实际文件压缩比率;155.对各文件的实际文件压缩比率按照预设规则进行排序,得到排序后实际文件压缩比率;156.获取所述目标分区中各文件在所述指定文件系统的第一读写性能,以及在其他文件系统的第二读写性能;157.将所述第一读写性能与所述第二读写性能进行比较,得到比较结果;158.基于所述比较结果从所述排序后实际文件压缩比率中确定所述参考压缩比率。159.在一些实施例中,该装置还可以包括:160.处理单元,用于通过所述指定压缩算法对所述至少一待压缩文件中除所述目标文件之外的文件进行压缩处理。161.本技术实施例公开了一种文件管理装置,该文件管理装置通过获取单元301获取至少一待压缩文件;预测单元302基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;第一确定单元303根据各待压缩文件的初始文件大小与所述目标缓存大小确定各待压缩文件的文件压缩比率;第二确定单元304从所述至少一待压缩文件中确定文件压缩比率大于所述指定文件系统的参考压缩比率的目标文件;剔除单元305,用于将所述目标文件从所述至少一待压缩文件中剔除,以使不通过所述指定压缩算法对所述目标文件进行压缩。以此,提高指定文件系统的顺序读写性能。162.本技术实施例还提供一种终端。如图4所示,该终端可以包括射频(rf,radiofrequency)电路601、包括有一个或一个以上存储介质的存储器602、输入单元603、显示单元604、传感器605、音频电路606、无线保真(wifi,wirelessfidelity)模块607、包括有一个或者一个以上处理核心的处理器608、以及电源609等部件。本领域技术人员可以理解,图4中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:163.rf电路601可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器608处理;另外,将涉及上行的数据发送给基站。通常,rf电路601包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(sim,subscriberidentitymodule)卡、收发信机、耦合器、低噪声放大器(lna,lownoiseamplifier)、双工器等。此外,rf电路601还可以通过无线通信与网络和其他设备通信。164.存储器602可用于存储软件程序以及模块,处理器608通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及文件管理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器608和输入单元603对存储器602的访问。165.输入单元603可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元603可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。除了触敏表面,输入单元603还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。166.显示单元604可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元604可包括显示面板,可选的,可以采用液晶显示器(显示屏,liquidcrystaldisplay)、有机发光二极管(oled,organiclight-emittingdiode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器608以确定触摸事件的类型,随后处理器608根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图4中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。167.终端还可包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在服务器移动到耳边时,关闭显示面板和背光。168.音频电路606、扬声器,传声器可提供用户与服务器之间的音频接口。音频电路606可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路606接收后转换为音频数据,再将音频数据输出处理器608处理后,经rf电路601以发送给比如终端,或者将音频数据输出至存储器602以便进一步处理。音频电路606还可能包括耳塞插孔,以提供外设耳机与服务器的通信。169.wifi属于短距离无线传输技术,终端通过wifi模块607可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了wifi模块607,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变申请的本质的范围内而省略。170.处理器608是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器602内的软件程序和模块,以及调用存储在存储器602内的数据,执行服务器的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器608可包括一个或多个处理核心;优选的,处理器608可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器608中。171.终端还包括给各个部件供电的电源609(比如电池),优选的,电源可以通过电源管理系统与处理器608逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源609还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。172.具体在本实施例中,终端中的处理器608会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器608来运行存储在存储器602中的应用程序,从而实现各种功能:173.获取至少一待压缩文件;174.基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;175.根据各待压缩文件的初始文件大小与目标缓存大小确定各待压缩文件的文件压缩比率;176.从至少一待压缩文件中确定文件压缩比率大于指定文件系统的参考压缩比率的目标文件;177.将目标文件从至少一待压缩文件中剔除,以使不通过指定压缩算法对目标文件进行压缩。178.本技术实施例公开了一种文件管理方法、装置、存储介质及终端。该文件管理方法包括:获取至少一待压缩文件;基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;根据各待压缩文件的初始文件大小与目标缓存大小确定各待压缩文件的文件压缩比率;从至少一待压缩文件中确定文件压缩比率大于指定文件系统的参考压缩比率的目标文件;将目标文件从至少一待压缩文件中剔除,以使不通过指定压缩算法对目标文件进行压缩。179.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于存储介质中,并由处理器进行加载和执行。180.为此,本技术实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本技术实施例所提供的任一种文件管理方法中的步骤。例如,该指令可以执行如下步骤:181.获取至少一待压缩文件;基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;根据各待压缩文件的初始文件大小与目标缓存大小确定各待压缩文件的文件压缩比率;从至少一待压缩文件中确定文件压缩比率大于指定文件系统的参考压缩比率的目标文件;将目标文件从至少一待压缩文件中剔除,以使不通过指定压缩算法对目标文件进行压缩。182.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。183.其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。184.由于该存储介质中所存储的指令,可以执行本技术实施例所提供的任一种文件管理方法中的步骤,因此,可以实现本技术实施例所提供的任一种文件管理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。185.以上对本技术实施例所提供的文件管理方法、装置、存储介质及终端进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。当前第1页12当前第1页12
技术特征:1.一种文件管理方法,其特征在于,所述方法包括:获取至少一待压缩文件;基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;根据各待压缩文件的初始文件大小与所述目标缓存大小确定各待压缩文件的文件压缩比率;从所述至少一待压缩文件中确定文件压缩比率大于所述指定文件系统的参考压缩比率的目标文件;将所述目标文件从所述至少一待压缩文件中剔除,以使不通过所述指定压缩算法对所述目标文件进行压缩。2.根据权利要求1所述的方法,其特征在于,所述基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小,包括:根据所述文件索引信息确定所述待压缩文件的文件数据;确定所述指定文件系统中应用于文件压缩处理的缓冲区;将所述文件数据传入所述缓冲区进行压缩处理,确定所述压缩处理在所述缓冲区占用的缓冲区块的块数;基于所述缓冲区块的缓存大小与所述块数确定所述目标缓存大小。3.根据权利要求2所述的方法,其特征在于,所述将所述文件数据传入所述缓冲区进行压缩处理,确定所述压缩处理在所述缓冲区占用的缓冲区块的块数,包括:获取所述缓冲区的起始缓冲区块号;调用所述指定压缩算法对所述文件数据执行压缩处理,得到压缩处理后对应的目标缓冲区块号;基于所述起始缓冲区块号与所述目标缓冲区块号计算得到所述块数。4.根据权利要求1所述的方法,其特征在于,所述根据各待压缩文件的初始文件大小与所述目标缓存大小确定各待压缩文件的文件压缩比率,包括:计算所述目标缓存大小与所述初始文件大小的比值,得到所述文件压缩比率。5.根据权利要求1所述的方法,其特征在于,所述从所述待压缩文件中确定文件压缩比率大于所述指定文件系统的参考压缩比率的目标文件,包括:确定所述指定文件系统的参考压缩比率;将各待压缩文件的文件压缩比率与所述参考压缩比率进行比较,确定文件压缩比率大于所述参考压缩比率的待压缩文件,得到所述目标文件。6.根据权利要求5所述的方法,其特征在于,所述确定所述指定文件系统的参考压缩比率,包括:获取指定文件系统的目标文件分区中各文件的实际文件压缩比率;对各文件的实际文件压缩比率按照预设规则进行排序,得到排序后实际文件压缩比率;获取所述目标分区中各文件在所述指定文件系统的第一读写性能,以及在其他文件系统的第二读写性能;将所述第一读写性能与所述第二读写性能进行比较,得到比较结果;
基于所述比较结果从所述排序后实际文件压缩比率中确定所述参考压缩比率。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过所述指定压缩算法对所述至少一待压缩文件中除所述目标文件之外的文件进行压缩处理。8.一种文件管理装置,其特征在于,所述装置包括:获取单元,用于获取至少一待压缩文件;预测单元,用于基于各待压缩文件的文件索引信息,预测各待压缩文件通过指定文件系统的压缩算法压缩处理后占用的目标缓存大小;第一确定单元,用于根据各待压缩文件的初始文件大小与所述目标缓存大小确定各待压缩文件的文件压缩比率;第二确定单元,用于从所述至少一待压缩文件中确定文件压缩比率大于所述指定文件系统的参考压缩比率的目标文件;剔除单元,用于将所述目标文件从所述至少一待压缩文件中剔除,以使不通过所述指定压缩算法对所述目标文件进行压缩。9.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的文件管理方法。10.一种终端,其特征在于,包括处理器和存储器,所述存储器存储有多条指令,所述处理器加载所述指令以执行权利要求1至7任一项所述的文件管理方法。
技术总结本申请实施例公开了一种文件管理方法、装置、存储介质及终端。本方案在EROFS系统镜像格式化过程中新增带有“预压缩”功能的仲裁管控模块,通过该仲裁管控模块计算待压缩文件的文件压缩比率,并将文件压缩比率与最优文件压缩比率进行比较,基于比较结果从待压缩文件中筛选出文件压缩比率较大的目标文件,对于目标文件不执行压缩处理,可以改善EROFS系统中文件压缩的负优化问题,从而提高EROFS的顺序读写性能。性能。性能。
技术研发人员:邹鹏 钟斌
受保护的技术使用者:深圳TCL新技术有限公司
技术研发日:2022.07.11
技术公布日:2022/11/1