一种文件碎片的整理方法、装置、存储介质及电子设备与流程

文档序号:21628113发布日期:2020-07-29 02:35阅读:238来源:国知局
一种文件碎片的整理方法、装置、存储介质及电子设备与流程

本申请实施例涉及内存管理技术,尤其涉及一种文件碎片的整理方法、装置、存储介质及电子设备。

技术背景

目前linux操作系统在运行一段时间后,经过频繁的页交换之后,使物理内存中空闲页框的分布变得很分散、零碎,即出现大量的“文件碎片”。

其中,文件碎片是指同一文件的各个部分分别存储在存储器中的不同位置,导致该文件所占据的存储空间不连续。另外,由于存储器件的随机读取能力远小于连续读取的能力,可见文件碎片的大量存在会降低读写效率,导致文件的读取时间过长。因此,需要对碎片化的文件进行碎片整理,以提高整体读写速度。



技术实现要素:

本申请实施例提供了一种文件碎片的整理方法、装置、存储介质及电子设备,可以提高文件碎片的整理效率。

第一方面,本申请实施例提供了一种文件碎片的整理方法,包括:

获取待整理的目标文件,确定所述目标文件的每一文件碎片数据的内存信息;

将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据;

获取所述第一文件碎片数据相邻的第二文件碎片数据的内存信息;

当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将所述第一文件碎片数据确定为待整理的目标文件碎片数据。

第二方面,本申请实施例提供了一种文件碎片的整理装置,包括:

第一获取模块,用于获取待整理的目标文件,确定所述目标文件的每一文件碎片数据的内存信息;

第一确定模块,用于将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据;

第二获取模块,用于获取所述第一文件碎片数据相邻的第二文件碎片数据的内存信息;

第二确定模块,用于当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将所述第一文件碎片数据确定为待整理的目标文件碎片数据。

第三方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请任一实施例提供的文件碎片的整理方法。

第四方面,一种电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本申请任一实施例提供的文件碎片的整理方法。

由上可知,本申请实施例中,获取待整理的目标文件,确定所述目标文件的每一文件碎片数据的内存信息;将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据;获取所述第一文件碎片数据相邻的第二文件碎片数据的内存信息;当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将所述第一文件碎片数据确定为待整理的目标文件碎片数据。以此从多个文件碎片数据中确定出部分待整理的目标文件碎片数据,将部分的目标文件碎片数据进行整理,无需对全部的文件碎片数据进行整理,提高了文件碎片的整理效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供文件碎片的整理方法的流程示意图。

图2为本申请实施例提供的目标文件的文件碎片的分布示意图。

图3为图2所示的目标文件的文件碎片整理的第一示意图。

图4为图2所示的目标文件的文件碎片整理的第二示意图。

图5为本申请实施例提供的文件碎片的整理方法的另一流程示意图。

图6为本申请实施例提供的文件碎片的整理装置的结构示意图。

图7为本申请实施例提供的电子设备的第一结构示意图。

图8为本申请实施例提供的电子设备的第二结构示意图。

具体实施例

请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。

本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文该的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文该的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本申请保护范围之内。

请参阅图1,图1为本申请实施例提供的文件碎片的整理方法的第一流程示意图。其中,本申请实施例的文件碎片的整理方法是基于第四代扩展文件系统(fourthextendedfilesystem,ext4)来进行文件碎片的整理,其中本申请实施例通过ext4文件系统的在线文件碎片整理工具对文件碎片进行在线整理,该在线文件碎片整理工具可以为e4defrag,该e4defrag能实现对文件碎片检查打分和整理。

具体而言,该文件碎片的整理方法可以包括以下步骤:

在步骤s101中,获取待整理的目标文件,确定目标文件的每一文件碎片数据的内存信息。

其中,遍历电子设备的全部文件以获取到待整理的目标文件,并通过预设函数如fs_ioc_fiemapiotcl函数来获取每一目标文件的文件碎片信息。该文件碎片信息可以包括目标文件中每一文件碎片数据的内存位置信息以及内存信息。需要说明的是,文件碎片数据的内存位置信息即为该文件碎片数据的物理地址。

进一步的,请参阅图2,图2为本申请实施例提供的目标文件的文件碎片的分布示意图。其中,在获取到目标文件后,还需确定目标文件的文件碎片数据。例如,图2所示的目标文件的文件碎片数据分别为文件碎片数据1、文件碎片数据2、文件碎片数据3等等,共计11个文件碎片数据。每一文件碎片数据均有对应内存空间的物理地址信息以及相应的内存信息。如文件碎片数据1的内存信息为512kb、文件碎片数据2的内存信息为4kb、文件碎片数据3的内存信息为4kb等等。

在一些实施方式中,可以通过e4defrag遍历电子设备内存空间内的全部文件,以获取到待整理的目标文件。需要说明的是,e4defrag进行碎片整理的单位是常规文件,故e4defrag遍历电子设备内存空间内的全部常规文件。其中,常规文件可以包括二进制文件,可扩展标记语言(extensiblemarkuplanguage,xml)文件,数据库(datebase,db)文件等等。

在步骤s102中,将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据。

其中,按照文件碎片数据的物理地址由小到大的顺序依次检测每一文件碎片数据的内存信息是否小于预设阈值。就图2所示的目标文件的文件碎片数据而言,按照文件碎片数据的物理地址由小到大的顺序即按照从文件碎片数据1到文件碎片数据11的顺序依次检测每一文件碎片数据的内存信息是否小于预设阈值。

若文件碎片数据的内存信息小于预设阈值时,将该文件碎片数据确定为第一文件碎片数据。若文件碎片数据的内存信息大于或等于预设阈值时,确定该文件碎片数据为不需要进行整理的文件碎片数据。

例如,若预设阈值为128kb时,如图2所示的目标文件中,第一文件碎片数据为文件碎片数据2、文件碎片数据3、文件碎片数据4、文件碎片数据5、文件碎片数据6、文件碎片数据7、文件碎片数据8、文件碎片数据9和文件碎片数据11。由于文件碎片数据1、文件碎片数据8和文件碎片数据10的内存信息均大于预设阈值,故认定文件碎片数据1、文件碎片数据8和文件碎片数据10为不需要进行整理的文件碎片数据。

在步骤s103中,获取第一文件碎片数据相邻的第二文件碎片数据的内存信息。

其中,根据文件碎片数据的物理地址获取每一第一文件碎片数据相邻的第二文件碎片数据,相邻的第二文件碎片为第一文件碎片数据前一内存位置信息的第二文件碎片数据以及后一内存位置信息的第二文件碎片数据,并确定每一第二文件碎片数据的内存信息。例如,当第一文件碎片数据为文件碎片数据2时,可以根据文件碎片数据的物理地址确定出文件碎片数据2相邻的第二文件碎片数据,即获取文件碎片数据2前一内存位置的文件碎片数据1和后一内存位置的文件碎片数据3作为第二文件碎片数据。并获取文件碎片数据1和文件碎片数据3的内存信息。

在步骤s104中,当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。

其中,检测第二文件碎片数据的内存信息是否小于预设阈值,当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。当检测到第二文件碎片数据均大于或等于预设阈值时,将第一文件碎片数据确定为不需要进行整理的文件碎片数据。

例如,当第一文件碎片数据为文件碎片数据2时,由于相邻的第二文件碎片数据即文件碎片数据1和文件碎片数据3中,文件碎片数据3的内存信息小于预设阈值,故将文件碎片数据2确定为目标文件碎片数据。

又例如,当第一文件碎片数据为文件碎片数据9时,由于相邻的第二文件碎片数据即文件碎片数据8和文件碎片数据10的内存信息均大于预设阈值,故将文件碎片数据9确定为不需要进行整理的文件碎片数据。

可以理解的是,由于文件碎片数据9相邻的第二文件碎片数据即文件碎片数据8和文件碎片数据10的内存信息均大于预设阈值,故对于文件碎片数据9而言,由于目标文件中不存在与文件碎片数据9的物理地址相邻的目标文件碎片数据,故在对目标文件碎片数据进行整理时,无法将文件碎片数据9与其他目标文件数据对应的内存空间进行拼接,以形成更大内存的连续内存空间。并且,对文件碎片数据9进行整理还会增大文件碎片的处理量,增加目标文件碎片整理时间,影响文件碎片的整理效率。故将文件碎片数据9确定为不需要进行整理的文件碎片数据,以提高文件碎片的整理效率。

需要说明的是,在按照文件碎片数据的物理地址由小到大的顺序依次检测每一文件碎片数据的内存信息时,若目标文件的第一个文件碎片数据的内存信息小于预设阈值时,由于该第一文件碎片数据不存在前一内存位置的文件碎片数据,故只需获取该第一文件碎片数据的后一内存位置的第二文件碎片数据,并检测该第二文件碎片数据是否小于预设阈值。若第二文件碎片数据小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片。若第二文件碎片数据大于或等于预设阈值时,将第一文件碎片数据确定不需要进行整理的目标文件碎片。

或者,若目标文件的最后一个文件碎片数据的内存信息小于预设阈值时,由于该第一文件碎片数据不存在后一内存位置的文件碎片数据,故只需获取该第一文件碎片数据的前一内存位置的第二文件碎片数据,并检测该第二文件碎片数据是否小于预设阈值。若第二文件碎片数据小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片。若第二文件碎片数据大于或等于预设阈值时,将第一文件碎片数据确定不需要进行整理的目标文件碎片。

进一步的,请参阅图3,图3为图2所示的目标文件的文件碎片整理的第一示意图。如图3所示的目标文件碎片数据可知,本申请实施例确定出的需要进行整理目标文件碎片数据为文件碎片数据2、文件碎片数据3、文件碎片数据4、文件碎片数据5、文件碎片数据6和文件碎片数据7。另外,在对文件碎片数据2、文件碎片数据3、文件碎片数据4、文件碎片数据5、文件碎片数据6和文件碎片数据7进行整理后,文件碎片数据2、文件碎片数据3、文件碎片数据4、文件碎片数据5、文件碎片数据6和文件碎片数据7所对应的内存空间可以拼接形成一个连续的内存空间,可以在一定程度上减小目标文件的文件碎片数据的数量,以提高目标文件的读写速度。

需要说明的是,e4defrag还具备对目标文件的文件碎片数据进行打分的功能。对目标文件的文件碎片数据进行打分的步骤如下:

获取目标文件的文件碎片数据的数量以及空闲数据块的数量,文件碎片数据的数量以及空闲数据块的数量计算得出目标文件的文件碎片比值;

文件碎片比值的计算公式如下:

ratio=(now_extents-best_extents)*100/block_counts;

其中,ratio为目标文件的文件碎片比值,now_extents为文件碎片数据的数量,best_extents为文件碎片数据的最佳数量,best_extents=1,block_counts为空闲数据块的数量,其中,block为最小存储和处理单位,ext4文件系统中block为4kb;

判断文件碎片比值是否大于第一数值;

当文件碎片比值大于第一数值时,根据第一公式将文件碎片比值转换为碎片分值;

当文件碎片比值小于或等于第一数值时,根据第二公式将文件碎片比值转换为碎片分值。

其中,第一公式为:score=80+20*(ratio)/100;

第二公式为:score=8*(ratio);

其中,score为碎片分值,ratio为文件碎片比值。

根据图3可知,整理前目标文件的文件碎片数据的数量为11,若空闲数据块的数量a为100,故整理前目标文件的文件碎片比值为10,若第一数值为10时,可根据第一公式计算得到目标文件的碎片分值为80。

需要说明的是,当文件的碎片分值在0-30分时,ext4文件系统生成不需要对该文件进行整理的建议;当文件的碎片分值在31-55分时,ext4文件系统生成该文件已经有一些碎片化,可以进行整理的建议;当文件的碎片分值大于56分时,ext4文件系统建议进行整理。

故,对于图3所示的目标文件,该文件的碎片分值为80,需要对该文件进行整理。本申请实施例提供的文件碎片的整理方法获取部分目标文件碎片进行整理后,即将文件碎片数据2、文件碎片数据3、文件碎片数据4、文件碎片数据5、文件碎片数据6和文件碎片数据7进行整理后,整理后目标文件的文件碎片数据的数量为5,空闲数据块的数量a为100,故整理后目标文件的文件碎片比值为4,根据第二公式计算得到目标文件的碎片分值为32。此时,该文件碎片整理的碎片数据的内存信息为52kb。可见本申请实施例对部分文件碎片数据进行整理后,可以极大的降低目标文件的碎片分值。

请同时参阅图4,图4为图2所示的目标文件的文件碎片整理的第二示意图。其中,图4所示的目标文件碎片数据是通过另一种文件碎片的整理方法来获取,即获取目标文件中的所有文件碎片数据作为目标文件碎片数据,即将文件碎片数据1、文件碎片数据2···文件碎片数据10、文件碎片数据11均作为目标文件碎片数据进行整理。

如图4所示,整理前目标文件的文件碎片数据的数量为11,若空闲数据块的数量a为100,故整理前目标文件的文件碎片比值为10,若第一数值为10时,可根据第一公式计算得到目标文件的碎片分值为80。

将文件碎片数据1、文件碎片数据2···文件碎片数据10、文件碎片数据11进行整理后,整理后目标文件的文件碎片数据的数量为1,空闲数据块的数量a为100,故整理后目标文件的文件碎片比值为0,根据第二公式计算得到目标文件的碎片分值为0。可见本申请实施例对部分文件碎片数据进行整理后,可以极大的降低目标文件的碎片分值。此时,该文件碎片整理的碎片数据的内存信息为1216kb。

对于图3和图4所示的两种目标文件的文件碎片整理方法,图3所示的目标文件的文件碎片整理方法,将目标文件的碎片分值由80降低至32,极大的降低了目标文件的碎片化程度,进而可以提高目标文件的读写速度。图4所示的目标文件的文件碎片整理方法,将目标文件的碎片分值由80降低至0,也可以提高目标文件的读写速度。

但是,图3从文件碎片数据中获取部分文件碎片数据进行整理的文件碎片整理方法,其文件碎片数据整理的数据量仅为52kb,而图4从文件碎片数据中获取全部文件碎片数据进行整理,其文件碎片数据整理的数据量为1216kb。可见,图3所示的目标文件的文件碎片整理方法可以以极小的数据整理量去有效的降低目标文件的碎片分值,即有效的降低目标文件的碎片化程度。

因此,图3从文件碎片数据中获取部分文件碎片数据进行整理的文件碎片整理方法,可以减少文件碎片整理的处理量,减少文件碎片数据整理的整理时长,从而提高了文件碎片的整理效率。

并且,对于包含文件碎片数据的目标文件而言,图4所示的文件碎片的整理方法,每次均进行完整的文件碎片数据搬移来解决文件碎片化问题,会对存储器件的寿命造成较大影响,进而影响手机使用寿命。另外,对于碎片化的目标文件而言,每次均进行完整的文件碎片数据搬移还会使得搬移的数据量较大,增大文件碎片的整理时长,使得文件碎片的整理效率低。而本申请实施例从文件碎片数据中获取部分目标文件数据进行整理,还可以减小大数量的文件碎片数据的整理对存储器件的影响,进而提高存储器件的使用寿命。

由此可见,本申请实施例提供的文件碎片的整理方法,通过获取待整理的目标文件,确定目标文件的每一文件碎片数据的内存信息;将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据;获取第一文件碎片数据相邻的第二文件碎片数据的内存信息;当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。以此从多个文件碎片数据中确定出部分待整理的目标文件碎片数据,将部分的目标文件碎片数据进行整理,无需对全部的文件碎片数据进行整理,提高了文件碎片的整理效率。

请参阅图5,图5为本申请实施例提供的文件碎片的整理方法的另一流程示意图。其中,本申请实施例的文件碎片的整理方法是基于第四代扩展文件系统(fourthextendedfilesystem,ext4)来进行文件碎片的整理,其中本申请实施例通过ext4文件系统的在线文件碎片整理工具对文件碎片进行在线整理,该在线文件碎片整理工具可以为e4defrag,该e4defrag能实现对文件碎片检查打分和整理。

具体而言,该文件碎片的整理方法可以包括以下步骤:

在步骤s201中,获取待整理的目标文件,确定目标文件的每一文件碎片数据的内存信息。

其中,e4defrag遍历电子设备的全部文件以获取到待整理的目标文件,并通过预设函数如fs_ioc_fiemapiotcl函数来获取每一目标文件的文件碎片信息。该文件碎片信息可以包括目标文件中每一文件碎片数据的内存位置信息以及内存信息。需要说明的是,文件碎片数据的内存位置信息即为该文件碎片数据的物理地址信息。

在步骤s202中,按照文件碎片数据的内存位置信息依次检测每一文件碎片数据的内存信息是否小于预设阈值。

其中,按照文件碎片数据的内存位置信息由小到大的顺序依次检测每一文件碎片数据的内存信息是否小于预设阈值,若文件碎片数据的内存信息小于预设阈值时,执行步骤s203。若文件碎片数据的内存信息大于或等于预设阈值时,确定该文件碎片数据为不需要进行整理的文件碎片数据。

在步骤s203中,将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据。

其中,将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据。例如,请继续参阅图3,若预设阈值为128kb时,图3中整理前的目标文件中的第一文件碎片数据为文件碎片数据2、文件碎片数据3、文件碎片数据4、文件碎片数据5、文件碎片数据6、文件碎片数据7、文件碎片数据8、文件碎片数据9和文件碎片数据11。

在步骤s204中,获取第一文件碎片数据的前一内存位置的第三文件碎片数据以及后一内存位置的第四文件碎片数据。

其中,在获取到第一文件碎片数据还还需要对第一文件碎片数据进一步检测,以得到最终需要整理的目标文件碎片数据。具体的,根据每一文件碎片数据的内存位置信息获取第一文件碎片数据的前一内存位置的第三文件碎片数据以及后一内存位置的第四文件碎片数据。

例如,当第一文件碎片数据为文件碎片数据2时,可以根据文件碎片数据的内存位置信息获取文件碎片数据2前一内存位置的文件碎片数据1作为第三文件碎片数据,以及获取后一内存位置的文件碎片数据3作为第四文件碎片数据。

在步骤s205中,当检测到第三文件碎片数据和/或第四文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。

其中,分别检测第三文件碎片数据以及第四文件碎片数据是否小于预设阈值,当第三文件碎片数据或第四文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。或者当第三文件碎片数据和第四文件碎片数据的内存信息均小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。

例如,当第一文件碎片数据为文件碎片数据2时,由于其对应的第四文件碎片数据即文件碎片数据3的内存信息小于预设阈值如128kb,故将文件碎片数据2确定为目标文件碎片数据。

但是,当检测到三文件碎片数据和第四文件碎片数据的内存信息均大于或等于预设阈值时,将第一文件碎片数据确定为不需要进行整理的文件碎片数据。

例如,当第一文件碎片数据为文件碎片数据9时,其对应的第四文件碎片数据为文件碎片数据8,其对应的第四文件碎片数据为文件碎片数据10。由于文件碎片数据8和文件碎片数据10的内存信息均大于预设阈值如128kb,故将文件碎片数据9确定为不需要进行整理的文件碎片数据。

可以理解的是,由于文件碎片数据9相邻的第二文件碎片数据即文件碎片数据8和文件碎片数据10的内存信息均大于预设阈值,故对于文件碎片数据9而言,由于目标文件中不存在与文件碎片数据9的物理地址相邻的目标文件碎片数据,故在对目标文件碎片数据进行整理时,无法将文件碎片数据9与其他目标文件数据对应的内存空间进行拼接,以形成更大内存的连续内存空间。并且,对文件碎片数据9进行整理还会增大文件碎片的处理量,增加目标文件碎片整理时间,影响文件碎片的整理效率。故将文件碎片数据9确定为不需要进行整理的文件碎片数据,以提高文件碎片的整理效率。

在一些实施方式中,在确定第一文件碎片数据为目标文件碎片数据后,可以将目标文件数据依次插入至预设链表中,使得在依次检测每一第一文件碎片数据是否为目标文件碎片数据后,可以直接从预设链表中获取到目标文件的全部目标文件碎片数据。

在一些实施方式中,当检测到第三文件碎片数据和/或第四文件碎片数据的内存信息小于预设阈值时,还可以将第一文件碎片数据添加第一标记,将带有第一标记的第一文件碎片数据确定为目标文件碎片数据;使得在依次检测每一第一文件碎片数据是否为目标文件碎片数据后,可以从目标文件的文件碎片数据中获取带有第一标记的文件碎片数据,去得到目标文件的每一目标文件碎片数据。

在步骤s206中,获取目标文件中每一目标文件碎片数据,计算目标文件碎片数据的总内存信息。

其中,获取目标文件的全部目标文件碎片数据,并计算出目标文件碎片数据的总内存信息。例如,图3所示的目标文件的目标文件碎片数据包括文件碎片数据2、文件碎片数据3、文件碎片数据4、文件碎片数据5、文件碎片数据6和文件碎片数据7。计算出文件碎片数据2、文件碎片数据3、文件碎片数据4、文件碎片数据5、文件碎片数据6和文件碎片数据7的总内存信息为52kb。

在步骤s207中,创建与总内存信息的内存容量相同的第一文件。

其中,创建与目标文件碎片数据的总内存信息的内存容量相同的第一文件,该第一文件为donorfile,e4defrag可以通过donorfile在目标文件对应的内存空间中申请内存容量为总内存信息的内存空间。

在一些实施方式中,可以从目标文件对应的内存空间中申请一块内存容量为总内存信息的连续内存空间,以创建与总内存信息的内存容量相同的第一文件,连续内存空间为第一文件对应的内存空间。使得步骤210可以将目标文件碎片数据移动至连续内存空间中进行存储,以完成目标文件碎片数据的整理。

在步骤s208中,将目标文件碎片数据移动至第一文件对应的内存空间内进行存储,以完成目标文件碎片数据的整理。

其中,可以调用ext4_ioc_move_extioctl函数将目标文件碎片数据与第一文件对应的内存空间进行数据交换,以实现将目标文件碎片数据移动至第一文件对应的内存空间内进行存储。如图3所示,在完成目标文件碎片数据的移动后,可以将目标文件的文件碎片数据由11个降至5个,极大的降低了目标文件的碎片化程度,进而提高了目标文件的读写能力。

由此可见,本申请实施例提供的文件碎片的整理方法,通过获取待整理的目标文件,确定目标文件的每一文件碎片数据的内存信息;将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据;获取第一文件碎片数据相邻的第二文件碎片数据的内存信息;当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。以此从多个文件碎片数据中确定出部分待整理的目标文件碎片数据,将部分的目标文件碎片数据进行整理,无需对全部的文件碎片数据进行整理,提高了文件碎片的整理效率。

请参阅图6,图6为本申请实施例提供的文件碎片的整理装置的结构示意图。该文件碎片的整理装置是基于第四代扩展文件系统(fourthextendedfilesystem,ext4)来进行文件碎片的整理,其中本申请实施例通过ext4文件系统的在线文件碎片整理工具对文件碎片进行在线整理,该在线文件碎片整理工具可以为e4defrag,该e4defrag能实现对文件碎片检查打分和整理。

具体而言,该文件碎片的整理装置包括:第一获取模块31、第一确定模块32、第二获取模块33和第二确定模块34。

第一获取模块31,用于获取待整理的目标文件,确定目标文件的每一文件碎片数据的内存信息。

其中,第一获取模块31用于调用e4defrag遍历电子设备的全部文件以获取到待整理的目标文件,并通过预设函数如fs_ioc_fiemapiotcl函数来获取每一目标文件的文件碎片信息。该文件碎片信息可以包括目标文件中每一文件碎片数据的物理地址信息以及内存信息。

第一确定模块32,用于将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据。

其中,第一确定模块32用于按照文件碎片数据的物理地址由小到大的顺序依次检测每一文件碎片数据的内存信息是否小于预设阈值,若文件碎片数据的内存信息小于预设阈值时,将该文件碎片数据确定为第一文件碎片数据。若文件碎片数据的内存信息大于或等于预设阈值时,确定该文件碎片数据为不需要进行整理的文件碎片数据。

第二获取模块33,用于获取第一文件碎片数据相邻的第二文件碎片数据的内存信息。

其中,第二获取模块33用于根据文件碎片数据的物理地址获取每一第一文件碎片数据相邻的第二文件碎片数据,相邻的第二文件碎片为第一文件碎片数据前一内存位置信息的第二文件碎片数据以及后一内存位置信息的第二文件碎片数据,并确定每一第二文件碎片数据的内存信息。

第二确定模块34,用于当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。

其中,第二确定模块34用于检测第二文件碎片数据的内存信息是否小于预设阈值,当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。当检测到第二文件碎片数据均大于或等于预设阈值时,将第一文件碎片数据确定为不需要进行整理的文件碎片数据。

在一些实施方式中,第二确定模块34还用于:当检测到每一第二文件碎片数据的内存信息均大于或等于预设阈值时,确定第一文件碎片数据不需要进行整理。

在一些实施方式中,第二获取模块33还用于:获取第一文件碎片数据的前一内存位置的第三文件碎片数据以及后一内存位置的第四文件碎片数据;第二确定模块34还用于:当检测到第三文件碎片数据和/或第四文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。

在一些实施方式中,第一确定模块32还用于:按照文件碎片数据的内存位置信息依次检测每一文件碎片数据的内存信息是否小于预设阈值;将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据。

在一些实施方式中,该文件碎片的整理装置300还包括整理模块,该整理模块用于:获取目标文件中每一目标文件碎片数据,计算目标文件碎片数据的总内存信息;创建与总内存信息的内存容量相同的第一文件;将目标文件碎片数据移动至第一文件对应的内存空间内进行存储,以完成目标文件碎片数据的整理。

在一些实施方式中,该整理模块还用于:从目标文件对应的内存空间中申请一块内存容量为总内存信息的连续内存空间,以创建与总内存信息的内存容量相同的第一文件,连续内存空间为第一文件对应的内存空间;将目标文件碎片数据移动至连续内存空间中进行存储。

在一些实施方式中,当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,第二确定模块33还用于:将第一文件碎片数据添加第一标记,将带有第一标记的第一文件碎片数据确定为目标文件碎片数据;整理模块还用于:从目标文件的文件碎片数据中获取带有第一标记的文件碎片数据,以得到每一目标文件碎片数据。

由此可见,本申请实施例提供的文件碎片的整理装置,通过第一获取模块31获取待整理的目标文件,确定目标文件的每一文件碎片数据的内存信息;第一确定模块32将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据;第二获取模块33获取第一文件碎片数据相邻的第二文件碎片数据的内存信息;第二确定模块34当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。以此从多个文件碎片数据中确定出部分待整理的目标文件碎片数据,将部分的目标文件碎片数据进行整理,无需对全部的文件碎片数据进行整理,提高了文件碎片的整理效率。

本申请实施例还提供一种电子设备。请参阅图7,图7为本申请实施例提供的电子设备的第一结构示意图。其中,电子设备500包括处理器501以及存储器502。其中,处理器501与存储器502电性连接。

该处理器500是电子设备500的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器502内的计算机程序,以及调用存储在存储器502内的数据,执行电子设备500的各种功能并处理数据,从而对电子设备500进行整体监控。

该存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。

在本申请实施例中,电子设备500中的处理器501会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器502中,并由处理器501运行存储在存储器502中的计算机程序,从而实现各种功能,如下:

获取待整理的目标文件,确定目标文件的每一文件碎片数据的内存信息;

将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据;

获取第一文件碎片数据相邻的第二文件碎片数据的内存信息;

当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。

在一些实施方式中,当获取第一文件碎片数据相邻的第二文件碎片数据的内存信息之后,处理器501可以具体执行以下步骤:

当检测到每一第二文件碎片数据的内存信息均大于或等于预设阈值时,确定第一文件碎片数据不需要进行整理。

在一些实施方式中,当获取第一文件碎片数据相邻的第二文件碎片数据的内存信息时,处理器501可以具体执行以下步骤:

获取第一文件碎片数据的前一内存位置的第三文件碎片数据以及后一内存位置的第四文件碎片数据;

当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据的步骤,包括:

当检测到第三文件碎片数据和/或第四文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。

在一些实施方式中,当将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据时,处理器501可以具体执行以下步骤:

按照文件碎片数据的内存位置信息依次检测每一文件碎片数据的内存信息是否小于预设阈值;

将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据。

在一些实施方式中,在将第一文件碎片数据确定为待整理的目标文件碎片数据之后,处理器501可以具体执行以下步骤:

获取目标文件中每一目标文件碎片数据,计算目标文件碎片数据的总内存信息;

创建与总内存信息的内存容量相同的第一文件;

将目标文件碎片数据移动至第一文件对应的内存空间内进行存储,以完成目标文件碎片数据的整理。

在一些实施方式中,当创建与总内存信息的内存容量相同的第一文件时,处理器501可以具体执行以下步骤:

从目标文件对应的内存空间中申请一块内存容量为总内存信息的连续内存空间,以创建与总内存信息的内存容量相同的第一文件,连续内存空间为第一文件对应的内存空间;

将目标文件碎片数据移动至第一文件对应的内存空间内进行存储时,处理器501可以具体执行以下步骤:

将目标文件碎片数据移动至连续内存空间中进行存储。

在一些实施方式中,将第一文件碎片数据确定为待整理的目标文件碎片数据时,处理器501可以具体执行以下步骤:

将第一文件碎片数据添加第一标记,将带有第一标记的第一文件碎片数据确定为目标文件碎片数据;

获取目标文件中每一目标文件碎片数据时,处理器501可以具体执行以下步骤:

从目标文件的文件碎片数据中获取带有第一标记的文件碎片数据,以得到每一目标文件碎片数据。

由上可知,本申请实施例提供的电子设备,通过获取待整理的目标文件,确定目标文件的每一文件碎片数据的内存信息;将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据;获取第一文件碎片数据相邻的第二文件碎片数据的内存信息;当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。以此从多个文件碎片数据中确定出部分待整理的目标文件碎片数据,将部分的目标文件碎片数据进行整理,无需对全部的文件碎片数据进行整理,提高了文件碎片的整理效率。

请一并参阅图8,在某些实施方式中,电子设备500还可以包括:显示器503、射频电路504、音频电路505以及电源506。其中,其中,显示器503、射频电路504、音频电路505以及电源506分别与处理器501电性连接。

该显示器503可以用于显示由用户输入的信息或提供给用户的信息以及各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示器503可以包括显示面板,在某些实施方式中,可以采用液晶显示器(liquidcrystaldisplay,lcd)、或者有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板。

该射频电路504可以用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。

该音频电路505可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。

该电源506可以用于给电子设备500的各个部件供电。在一些实施例中,电源506可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管图8中未示出,电子设备500还可以包括摄像头、蓝牙模块等,在此不再赘述。

本申请实施例还提供一种存储介质,该存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上述任一实施例中的文件碎片的整理方法,比如:获取待整理的目标文件,确定目标文件的每一文件碎片数据的内存信息;将内存信息小于预设阈值的文件碎片数据确定为第一文件碎片数据;获取第一文件碎片数据相邻的第二文件碎片数据的内存信息;当检测到任一个第二文件碎片数据的内存信息小于预设阈值时,将第一文件碎片数据确定为待整理的目标文件碎片数据。

在本申请实施例中,存储介质可以是磁碟、光盘、只读存储器(readonlymemory,rom,)、或者随机存取记忆体(randomaccessmemory,ram)等。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

需要说明的是,对本申请实施例的文件碎片的整理方法而言,本领域普通测试人员可以理解实现本申请实施例的文件碎片的整理方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,如存储在电子设备的存储器中,并被该电子设备内的至少一个处理器执行,在执行过程中可包括如文件碎片的整理方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。

对本申请实施例的文件碎片的整理装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,该存储介质譬如为只读存储器,磁盘或光盘等。

以上对本申请实施例所提供的一种文件碎片的整理方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1