CN114610650A - 内存压缩方法、装置、存储介质及电子设备 - Google Patents
内存压缩方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114610650A CN114610650A CN202210244342.2A CN202210244342A CN114610650A CN 114610650 A CN114610650 A CN 114610650A CN 202210244342 A CN202210244342 A CN 202210244342A CN 114610650 A CN114610650 A CN 114610650A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- data segment
- value
- target
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本申请公开了一种内存压缩方法、装置、存储介质及电子设备,所述方法包括:若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据;采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组;基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段;将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段。可以提高内存数据压缩效率,避免移动终端出现卡顿的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种内存压缩方法、装置、存储介质以及电子设备。
背景技术
现如今,终端所采用的内存压缩方式通常为在当前终端运行内存的剩余空间较小时,通过选取当前运行在后台的部分应用程序,将这部分应用程序压缩至运行内存的设定分区内,以达到内存控制的目的。然而在现有的内存压缩方式中,所采用的计算方式需要较长的计算时间,因此影响了内存压缩的效率。
发明内容
本申请实施例提供一种内存压缩方法、装置、存储介质以及电子设备,可以提高内存数据压缩效率,避免移动终端出现卡顿的问题。
本技术方案如下:
第一方面,本申请实施例提供了一种内存压缩方法,所述方法包括:
若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据;
采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组;
基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段;
将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段。
第二方面,本申请实施例提供了一种内存压缩装置,所述装置包括:
数据获取模块,用于若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据;
数据处理模块,用于采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组;
数据压缩模块,用于基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段;
数据存储模块,用于将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段。
第三方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述第一方面的方法步骤。
第四方面,本申请实施例提供了一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述第一方面的方法步骤。
在本申请实施例中,在当前运行内存的剩余量小于剩余量阈值时,通过采用设定因子将内存数据中的各数据段处理为数据数值组,并基于数值匹配方式在数据数值组中确定目标数据数值,将目标数据数值所在的目标数据段进行压缩,以最终得到压缩数据段。通过采用设定因子,可以对内存数据中的数据段进行并行数值处理,加快了内存数据的数值处理的计算速率,进而提高了内存数据压缩效率,避免移动终端出现卡顿的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据段的举例示意图;
图2是本申请实施例提供的一种内存压缩方法的流程示意图;
图3是本申请实施例提供的一种运行内存的分区的举例示意图;
图4是本申请实施例提供的一种运行内存的分区的举例示意图;
图5是本申请实施例提供的一种内存压缩方法的流程示意图;
图6是本申请实施例提供的一种内存压缩方法的流程示意图;
图7是本申请实施例提供的一种内存压缩装置的结构示意图;
图8是本申请实施例提供的一种内存压缩装置的结构示意图;
图9是本申请实施例提供的一种内存压缩装置的结构示意图;
图10是本申请实施例提供的一种数据处理模块的结构示意图;
图11是本申请实施例提供的一种数据压缩模块的结构示意图;
图12是本申请实施例提供的一种内存压缩装置的结构示意图;
图13是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
zRAM内存压缩技术,在将内存数据进行压缩后,生成的多个压缩数据段中存在两个字段是分别用于存储原始数据长度以及压缩数据长度的,原始数据长度指的是指运行内存中的内存数据中未压缩、不能进行压缩的数据长度,压缩数据长度指指运行内存中的内存数据中可以进行压缩的数据长度,原始数据长度以及压缩数据长度与内存数据相对应,并非固定的数值。
对于这两个数据段的存储,现有技术采用的存储方式是,将数字按照每个字节只存储255字节的方式分发至若干个字节,直至所有数字全部存储完毕。但是这种存储放式在进行压缩以及解压时,一定程度上造成了效率问题。
zRAM对应的算法在进行压缩匹配的过程中,哈希数值算法处理的方式为,如图1所示,首先读取内存数据的前4个字节,对前4个字节进行哈希数值算法处理,即将前4个字节与预设的哈希因子相乘,得到前4个字节对应的哈希值,基于此哈希值确定是否有匹配的字节,若不存在匹配的字节,接着读取第2个字节至第5个字节的数据,对第2个字节至第5个字节进行哈希数值算法处理,得到第2个字节至第5个字节的对应的哈希值,以此类推,直至遍历获取得到的内存数据中所有的数据。这样的哈希数值算法处理方式,因需要依次计算4个字节对应的哈希值,需要使用较多的时间。
基于此,本申请提供了一种内存压缩方法,可以提高内存数据压缩效率,避免移动终端出现卡顿的问题。
该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的内存压缩装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。其中,本申请实施例中的内存压缩装置可以为移动终端,包括但不限于:智能交互平板、个人电脑、平板电脑、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中用户终端可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、5G网络或未来演进网络中的终端设备等。
下面结合具体的实施例对本申请进行详细说明。
请参见图2,为本申请实施例提供的一种内存压缩方法的流程示意图。本申请实施例以内存压缩装置侧进行描述,该内存压缩方法可以包括以下步骤:
S101,若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据;
运行内存,也称作主存,是指程序运行时需要的内存,只能临时存储数据用于与中央处理器(Central Processing Unit,CPU)交换高速缓存数据,一般多指随机存取存储器(Random Access Memory,RAM)。
如图3所示,当前运行内存的剩余量指运行内存中未用于存储数据的内存大小,当其小于剩余量阈值,则获取运行内存中临时存储的应用程序的内存数据,例如,剩余量阈值可以为运行内存大小的二分之一,若此时运行内存的剩余量为三分之一时,则获取运行内存中临时存储的应用程序的内存数据,具体的,可以获取运行内存中临时存储的应用程序的所有内存数据,也可以获取运行内存中临时存储的应用程序的部分内存数据,还可以根据当前运行的剩余量确定获取运行内存中临时存储的具体哪部分内存数据。
S102,采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组;
设定因子具体可以为对各数据段进行数值处理的相同的因子,设定因子可以是一个预设的常数。
在获取到需要进行压缩的内存数据时,可以将内存数据按照预设的方式划分为多个数据段,其划分依据可以为将内存数据划分为预设段数的分段处理,例如,将内存数据固定划分64段数据段,也可以采用设定字符数对内存数据进行分段处理,还可以为采用随机字符数对内存数据进行分段处理,然后采用设定因子对得到的各数据段进行数值处理,得到各数据段对应的数据数值组。
数值处理可以为对各数据段进行哈希数值算法处理的过程。将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希数值算法,而通过原始数据映射之后得到的二进制值串就是哈希数值。
数据数值组可以包括对各数据段进行哈希数值算法处理后得到的哈希数值。
将其按照预设的方式划分为4个数据段,接着采用设定因子分别对这四个数据段进行数值处理,可以得到这4个数据段对应的数据数值组。
S103,基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段;
数值匹配方式可以为确定需要进行压缩数据的数据判断方法。数值匹配方法可以为在数据数值组中寻找相同的数据数值,将相同的数据数值作为目标数据数值,也可以为在数据数值组中寻找数值相差在预设范围内的数据数值,将对应的数据数值作为目标数据数值。
目标数据数值为经数值匹配方式匹配后,符合压缩标准的数据数值。
目标数据段为在内存数据的各数据段中目标数据数值所指示的数据段。
在内存数据中,目标数据段可以内存数据的各数据段中的所有数据段,也可为各数据段中的部分数据段,只将目标数据段内的数据进行压缩,得到目标数据段对应的压缩数据段,压缩数据段的数据长度小于目标数据段的总和。
当基于数据匹配方式在数据数值组中不能确定目标数据数值,即数据数值组中不存在匹配的数据数值,则表明数据数值组对应的数据不需要进行压缩。
S104,将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段。
剩余数据段为各数据段中的非目标数据段,为内存数据中除所述目标数据段外的其余数据段,对于这部分数据,不需要进行压缩。但可以与压缩数据段一并存储值运行内存的内存分区中,以便在对后续需要调用经过压缩的内存数据时,压缩需要调用压缩数据段,并确定对应的解压数据段,组成需要调用的内存数据。
如图4所示,内存数据经过压缩后,包含了压缩数据段以及剩余数据段,压缩数据段以及剩余数据段都一并存储值运行内存的内存分区中。
内存分区可以为运行内存中预设的内存分区,也可以为根据压缩数据段以及剩余数据段的大小,在运行内存中划分的内存分区。
采用本申请实施例,在当前运行内存的剩余量小于剩余量阈值时,通过采用设定因子将内存数据中的各数据段数值处理为数据数值组,并基于数值匹配方式在数据数值组中确定目标数据数值,将目标数据数值所在的目标数据段进行压缩,以最终得到压缩数据段。通过采用设定因子,可以对内存数据中的数据段进行并行数值处理,加快了内存数据的数值处理的计算速率,进而提高了内存数据压缩效率,避免移动终端出现卡顿的问题。
请参见图5,为本申请实施例提供的一种内存压缩方法的流程示意图。本申请实施例以内存压缩装置侧进行描述,该内存压缩方法可以包括以下步骤:
S201,在当前运行内存中,获取处于非活跃状态的应用程序对应的内存数据,所述非活跃状态的应用程序为系统后台运行,且使用频次少于次数阈值或使用时长少于时长阈值的应用程序;
在当前运行的应用程序中,存在处于活跃状态的应用程序以及处于非活跃状态的应用程序,处于活跃状态的应用程序可以为运行在前台的应用程序,也可以为运行在前台的应用程序以及在系统后台运行的应用程序中,使用频次多于等于次数阈值或者使用时长多于时长阈值的应用程序。处于活跃状态的应用程序或处于非活跃状态的应用程序可以移动终端中安装的任一款应用程序。
在获取当前运行内存的内存数据时,可以不用获取运行内存中所有的内存数据,只获取处于非活跃状态的应用程序对应的内存数据,这样可以保证处于活跃状态的应用程序对应的内存数据不被压缩,避免了压缩以及解压过程过于频繁得进行。
S202,获取针对所述内存数据的初始压缩算法,对所述初始压缩算法进行汇编化处理,得到汇编化后的压缩算法;将所述汇编化后的压缩算法中的逻辑判断指令进行删除处理,以得到目标压缩算法;
初始压缩算法是指数据压缩的算法,在电子与通信领域也常被称为信号编码,可以为现有的应用于对运行内存的内存数据进行压缩的算法,可以为Lempel-Ziv算法(例如,LZ4算法),DEFLATE算法等。
对初始压缩算法进行汇编化处理,例如,将LZ4算法的压缩操作进行汇编优化处理,得到汇编化后的压缩算法,使得压缩算法使用的语言为汇编语言,其中,汇编语言程序也称为汇编语言源程序,就是用汇编语言编写的一种计算机程序。
请参见S102,此处不再赘述。
S203,采用设定字符数对所述内存数据进行分段处理,以得到至少一个数据段中的各数据段;采用设定因子对所述各数据段中的单位数据分别进行哈希数值处理,以得到所述各数据段对应的数据数值组;
设定字符数为对内存数据进行分段的单位,设定字符数可以为8个,也可以为15个,或者是其他的数值。例如,若设定字符数为8个,各数据段的长度则为8个字符。
内存数据可以包含至少一个数据段,至少一个数据段可以根据设定字符数,分别分段为多个数据段。
各数据段中的单位数据可以为各数据段以任意数目的字符为长度,分段为多段数据,则每段数据即为各数据段的单位数据,例如,若设定字符数为8个,各数据段的长度则为8个字符,可以为将各数据段中以一个字符为单位,将各数据段分别分段为8段数据,8段数据中的每一段数据都为各数据段中的单位数据。
设定因子可以为预设的哈希因子,当设定因子为哈希因子时,采用设定因子对各数据段中的单位数据分别进行哈希数值处理后,得到的各数据段对应的数据数值组为各数据段对应的哈希值组,具体的,可以采用预设的哈希因子与各数据段中的单位数据相乘,得到各数据段对应的哈希值组。
在采用设定因子对所述各数据段中的单位数据分别进行哈希数值处理时,可以采用单指令多数据流(Single Instruction Multiple Data,SDMI)的计算方式进行,SDMI计算方式能够复制多个操作数,并把它们打包在大型寄存器的一组指令集,因此,SDMI计算方式可以实现多组数据的同时计算,提高哈希数值处理效率。
S204,基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段;
请参见S103,此处不在赘述。
S205,将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段。
请参见S104,此处不在赘述。
采用本申请实施例,在当前运行内存的剩余量小于剩余量阈值时,通过采用设定因子将内存数据中的各数据段数值处理为数据数值组,并基于数值匹配方式在数据数值组中确定目标数据数值,将目标数据数值所在的目标数据段进行压缩,以最终得到压缩数据段。通过采用设定因子,可以对内存数据中的数据段进行并行数值处理,加快了内存数据的数值处理的计算速率,进而提高了内存数据压缩效率,避免移动终端出现卡顿的问题;通过对运行内存中内存数据进行选择性的压缩,避免了对运行在后台的应用程序的内存数据都进行压缩导致需处理的数据过多,限制了内存数据的压缩效率;在采用设定字符数对内存数据进行分段之前,获取将所述汇编化后的压缩算法中的逻辑判断指令进行删除处理的目标压缩算法,简化算法执行步骤,可以进一步可以提高内存数据压缩效率。
请参见图6,为本申请实施例提供的一种内存压缩方法的流程示意图。本申请实施例以内存压缩装置侧进行描述,该内存压缩方法可以包括以下步骤:
S301,若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据;
请参见S101,此处不再赘述。
S302,采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组;
请参见S102,此处不再赘述。
S303,若所述数据数值组中存在相同的数据数值,则将所述相同的数据数值确定为目标数据数值;将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段;
目标数据数值为需要进行压缩的数据段对应的数据数值。目标数据段为内存数据中需要进行压缩的数据段,因目标数据段为目标数据数值所对应数据段,因此目标数据段对应的数据数值为相同的数据数值。
对于内存数据中的各数据段,当其对应的各数据数值组中的各哈希值在所有的数据数值组成的集合中,存在相同的数据数值,则将相同的数据数值确定为目标数据数值,将目标数据数值对应的目标数据段进行压缩,得到压缩数据段。例如,存在两组数据数值组,分别为数据数值组1,以及数据数值组2,其包含的数据数值分别为ABCA,ADDD,则数据数值A可以作为目标数据数值,将数据数值A对应的数据段作为目标数据段,对目标数据段的数据进行压缩,得到数据数值A对应的压缩数据段,数据数值D也可以作为目标数据数值,将数据数值D对应额数据段作为目标数据段,对目标数据段的数据进行压缩,得到数据数值D对应的压缩数据段。其中,各数据段对应的数据数值组可以为各数据段对应的哈希值组。
S304,获取所述压缩数据段的第一数据长度和剩余数据段的第二数据长度,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段;采用设定编码方式,分别将所述第一数据长度的数值和所述第二数据长度的数值压缩为设定字节数的数据属性字段;
目标数据段为需要进行压缩的数据段,剩余数据段为所述内存数据中除所述目标数据段外的其余数据段,即内存数据中不需要进行压缩的数据段。目标数据段以及剩余数据段的数量不作限制。
第一数据长度为压缩数据段的数据长度,第二数据长度为剩余数据段的数据长度。第一数据长度以及第二数据长度可以为任意数值,例如,500、1000、2000等。
在对目标数据段进行压缩后,会生成一段用于记录所有压缩数据段的长度的数据段,同时,一并生成一段用于记录剩余数据的长度的数据段,将这两个数据段的编码方式设置为储存至固定储存空间的方式,例如,首先将第一数据长度以及第二数据长度进行数值转换,例如,对第一数据长度以及第二数据长度进行二进制转换或其他禁止的转换,然后将第一数据长度以及第二数据长度的转换后的数值压缩至固定的两个字节中,使得第一数据长度以及第二数据长度一直存储在设定字节数的储存空间当中,可以在保证了储存空间的同时,提高了数据储存速度,进而提高数据压缩的效率。
S305,将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段;
请参见S104,此处不再赘述。
S306,若需要解压所述内存分区的中目标压缩数据段,则获取针对所述压缩数据段对应的初始解压算法,对所述初始解压算法进行汇编化处理,得到目标解压算法;采用目标解压算法对所述目标压缩数据段进行解压,得到所述目标压缩数据段对应的解压数据段。
用户在使用移动终端的过程中,可能需要调用运行在后台的应用程序,若用户需要调用的应用程序对应的内存数据经过了压缩,则将需要调用的应用程序对应的内存数据进行解压,在解压过程中,可以获取压缩数据段对应的初始解压算法,例如,初始解压算法可以为LZ4算法,接着将LZ4算法的解压操作进行汇编优化处理,得到汇编化后的LZ4算法,即使得解压算法使用的语言为汇编语言。
目标压缩数据段为所有压缩数据段中,需要调用的运行在后台的应用程序对应内存数据中,进行了压缩后的数据段。可以采用汇编后的LZ4算法对目标压缩数据段进行解压,得到目标压缩数据段对应的解压数据段,因解压后的数据段以及需要调用的运行在后台的应用程序对应内存数据中的剩余数据段,一并组成了此应用程序的内存数据,因此,只要将此应用程序对应的内存数据重新存储至运行内存中的空闲分区,即可使得应用程序可以被正常调用,其中,运行内存中的空间分区,为除储存所有压缩数据段以及所有剩余数据段之外的内存分区。
采用本申请,在当前运行内存的剩余量小于剩余量阈值时,通过采用设定因子将内存数据中的各数据段处理为数据数值组,并基于数值匹配方式在数据数值组中确定目标数据数值,将目标数据数值所在的目标数据段进行压缩,以最终得到压缩数据段。通过采用设定因子,可以对内存数据中的数据段进行并行数值处理,加快了内存数据的数值处理的计算速率,进而提高了内存数据压缩效率,避免移动终端出现卡顿的问题。采用设定编码方式,分别将所述第一数据长度的数值和所述第二数据长度的数值压缩为设定字节数的数据属性字段可以在保证了储存空间的同时,提高数据储存速度,进一步提高数据压缩的效率;采用汇编化处理后的目标解压算法,对需要进行解压的压缩数据段的全部字节串都进行汇编化,可以提高解压的效率,避免移动终端出现卡顿的情况。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图7,其示出了本申请一个示例性实施例提供的内存压缩装置的结构示意图。该内存压缩装置可以通过软件、硬件或者两者的结合实现成为移动终端的全部或一部分。该内存压缩装置1包括数据获取模块11、数据处理模块12数据压缩模块13、以及数据存储模块14,其中:
数据获取模块11,用于若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据;
数据处理模块12,用于采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组;
数据压缩模块13,用于基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段;
数据存储模块14,用于将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段。
可选的,数据获取模块11,具体用于:
在当前运行内存中,获取处于非活跃状态的应用程序对应的内存数据,所述非活跃状态的应用程序为系统后台运行,且使用频次少于次数阈值或使用时长少于时长阈值的应用程序。
可选的,所述装置1,请参见图8,还包括:
算法处理模块15,用于获取针对所述内存数据的初始压缩算法,对所述初始压缩算法进行汇编化处理,得到汇编化后的压缩算法;
指令删除模块16,用于将所述汇编化后的压缩算法中的逻辑判断指令进行删除处理,以得到目标压缩算法。
可选的,所述数据处理模块12,请参见图9,还包括:
分段处理单元121,用于采用设定字符数对所述内存数据进行分段处理,以得到至少一个数据段中的各数据段;
哈希处理单元122,用于采用设定因子对所述各数据段中的单位数据分别进行哈希数值处理,以得到所述各数据段对应的数据数值组。
可选的,数据压缩模块13,请参见图10,还包括:
数值确定单元131,用于若所述数据数值组中存在相同的数据数值,则将所述相同的数据数值确定为目标数据数值;
数据压缩单元132,用于将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段。
可选的,请参见图11,所述装置1,还包括:
长度获取模块17,用于获取所述压缩数据段的第一数据长度和剩余数据段的第二数据长度,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段;
数值压缩模块18,用于采用设定编码方式,分别将所述第一数据长度的数值和所述第二数据长度的数值压缩为设定字节数的数据属性字段。
可选的,请参见图12,所述装置1,还包括:
所述算法处理模块15,用于若需要解压所述内存分区的中目标压缩数据段,则获取针对所述压缩数据段对应的初始解压算法,对所述初始解压算法进行汇编化处理,得到目标解压算法;
数据解压模块19,用于采用目标解压算法对所述目标压缩数据段进行解压,得到所述目标压缩数据段对应的解压数据段。
采用本申请实施例,在当前运行内存的剩余量小于剩余量阈值时,通过采用设定因子将内存数据中的各数据段数值处理为数据数值组,并基于数值匹配方式在数据数值组中确定目标数据数值,将目标数据数值所在的目标数据段进行压缩,以最终得到压缩数据段。通过采用设定因子,可以对内存数据中的数据段进行并行数值处理,加快了内存数据的数值处理的计算速率,进而提高了内存数据压缩效率,避免移动终端出现卡顿的问题;通过对运行内存中内存数据进行选择性的压缩,避免了对运行在后台的应用程序的内存数据都进行压缩导致需处理的数据过多,限制了内存数据的压缩效率;在采用设定字符数对内存数据进行分段之前,获取将所述汇编化后的压缩算法中的逻辑判断指令进行删除处理的目标压缩算法,简化算法执行步骤,可以进一步可以提高内存数据压缩效率。采用设定编码方式,分别将所述第一数据长度的数值和所述第二数据长度的数值压缩为设定字节数的数据属性字段可以在保证了储存空间的同时,提高数据储存速度,进一步提高数据压缩的效率;采用汇编化处理后的目标解压算法,对需要进行解压的压缩数据段的全部字节串都进行汇编化,可以提高解压的效率,避免移动终端出现卡顿的情况。
需要说明的是,上述实施例提供的内存压缩装置在执行内存压缩方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的内存压缩装置与内存压缩方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请还提供了一种电子设备,该机器人存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1-图6所示实施例的方法步骤,具体执行过程可以参见图1-图6所示实施例的具体说明,在此不进行赘述。
请参见图13,为本申请实施例提供了一种电子设备的结构示意图。如图13所示,所述电子设备1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行电子设备1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图13所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及机器人定位应用程序。
在图13所示的移动终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的生成内存压缩程序,并具体执行以下操作:
若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据;
采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组;
基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段;
将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段。
在一个实施例中,所述处理器1001在执行若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据时,具体执行以下操作:
在当前运行内存中,获取处于非活跃状态的应用程序对应的内存数据,所述非活跃状态的应用程序为系统后台运行,且使用频次少于次数阈值或使用时长少于时长阈值的应用程序。
在一个实施例中,所述处理器1001在执行采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组之前时,具体执行以下操作:
获取针对所述内存数据的初始压缩算法,对所述初始压缩算法进行汇编化处理,得到汇编化后的压缩算法;
将所述汇编化后的压缩算法中的逻辑判断指令进行删除处理,以得到目标压缩算法。
在一个实施例中,所述处理器1001在执行采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组时,具体执行以下操作:
采用设定字符数对所述内存数据进行分段处理,以得到至少一个数据段中的各数据段;
采用设定因子对所述各数据段中的单位数据分别进行哈希数值处理,以得到所述各数据段对应的数据数值组。
在一个实施例中,所述处理器1001在基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段时,具体执行以下操作:
若所述数值数据组中存在相同的数值数据,则将所述相同的数值数据确定为目标数据数值;
将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段。
在一个实施例中,所述处理器1001在若所述各数据段对应的哈希数据组中存在匹配的哈希数据组,则将所述匹配的哈希数据组对应的数据段进行压缩,得到压缩数据段之后,还执行以下操作:
获取所述压缩数据段的第一数据长度和剩余数据段的第二数据长度,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段;
采用设定编码方式,分别将所述第一数据长度的数值和所述第二数据长度的数值压缩为设定字节数的数据属性字段。
在一个实施例中,所述处理器1001在执行将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中之后,还执行以下操作:
若需要解压所述内存分区的中目标压缩数据段,则获取针对所述压缩数据段对应的初始解压算法,对所述初始解压算法进行汇编化处理,得到目标解压算法;
采用目标解压算法对所述目标压缩数据段进行解压,得到所述目标压缩数据段对应的解压数据段。
采用本申请实施例,在当前运行内存的剩余量小于剩余量阈值时,通过采用设定因子将内存数据中的各数据段数值处理为数据数值组,并基于数值匹配方式在数据数值组中确定目标数据数值,将目标数据数值所在的目标数据段进行压缩,以最终得到压缩数据段。通过采用设定因子,可以对内存数据中的数据段进行并行数值处理,加快了内存数据的数值处理的计算速率,进而提高了内存数据压缩效率,避免移动终端出现卡顿的问题;通过对运行内存中内存数据进行选择性的压缩,避免了对运行在后台的应用程序的内存数据都进行压缩导致需处理的数据过多,限制了内存数据的压缩效率;在采用设定字符数对内存数据进行分段之前,获取将所述汇编化后的压缩算法中的逻辑判断指令进行删除处理的目标压缩算法,简化算法执行步骤,可以进一步可以提高内存数据压缩效率。采用设定编码方式,分别将所述第一数据长度的数值和所述第二数据长度的数值压缩为设定字节数的数据属性字段可以在保证了储存空间的同时,提高数据储存速度,进一步提高数据压缩的效率;采用汇编化处理后的目标解压算法,对需要进行解压的压缩数据段的全部字节串都进行汇编化,可以提高解压的效率,避免移动终端出现卡顿的情况。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种内存压缩方法,其特征在于,所述方法包括:
若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据;
采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组;
基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段;
将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段。
2.根据权利要求1所述的方法,其特征在于,所述若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据,包括:
在当前运行内存中,获取处于非活跃状态的应用程序对应的内存数据,所述非活跃状态的应用程序为系统后台运行,且使用频次少于次数阈值或使用时长少于时长阈值的应用程序。
3.根据权利要求1所述的方法,其特征在于,所述采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组之前,还包括:
获取针对所述内存数据的初始压缩算法,对所述初始压缩算法进行汇编化处理,得到汇编化后的压缩算法;
将所述汇编化后的压缩算法中的逻辑判断指令进行删除处理,以得到目标压缩算法。
4.根据权利要求1所述的方法,其特征在于,所述采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组,包括:
采用设定字符数对所述内存数据进行分段处理,以得到至少一个数据段中的各数据段;
采用设定因子对所述各数据段中的单位数据分别进行哈希数值处理,以得到所述各数据段对应的数据数值组。
5.根据权利要求1所述的方法,其特征在于,所述基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段,包括:
若所述数据数值组中存在相同的数据数值,则将所述相同的数据数值确定为目标数据数值;
将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段。
6.根据权利要求1所述的方法,其特征在于,所述若所述各数据段对应的哈希数据组中存在匹配的哈希数据组,则将所述匹配的哈希数据组对应的数据段进行压缩,得到压缩数据段之后,还包括:
获取所述压缩数据段的第一数据长度和剩余数据段的第二数据长度,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段;
采用设定编码方式,分别将所述第一数据长度的数值和所述第二数据长度的数值压缩为设定字节数的数据属性字段。
7.根据权利要求1所述的方法,其特征在于,所述将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中之后,还包括:
若需要解压所述内存分区的中目标压缩数据段,则获取针对所述压缩数据段对应的初始解压算法,对所述初始解压算法进行汇编化处理,得到目标解压算法;
采用目标解压算法对所述目标压缩数据段进行解压,得到所述目标压缩数据段对应的解压数据段。
8.一种内存压缩装置,其特征在于,所述装置包括:
数据获取模块,用于若当前运行内存的剩余量小于剩余量阈值,则获取所述运行内存中的内存数据;
数据处理模块,用于采用设定因子对所述内存数据中的各数据段进行数值处理,以得到所述各数据段对应的数据数值组;
数据压缩模块,用于基于数值匹配方式在所述数据数值组中确定目标数据数值,将所述目标数据数值所在的目标数据段进行压缩,得到压缩数据段;
数据存储模块,用于将所述压缩数据段和剩余数据段存储至所述运行内存的内存分区中,所述剩余数据段为所述内存数据中除所述目标数据段外的其余数据段。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1-7任意一项的方法步骤。
10.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-7任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210244342.2A CN114610650A (zh) | 2022-03-11 | 2022-03-11 | 内存压缩方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210244342.2A CN114610650A (zh) | 2022-03-11 | 2022-03-11 | 内存压缩方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610650A true CN114610650A (zh) | 2022-06-10 |
Family
ID=81863651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210244342.2A Pending CN114610650A (zh) | 2022-03-11 | 2022-03-11 | 内存压缩方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114610650A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098456A (zh) * | 2022-08-25 | 2022-09-23 | 北京探境科技有限公司 | 文件处理方法、装置、存储介质及电子设备 |
CN117220686A (zh) * | 2023-09-18 | 2023-12-12 | 青岛展诚科技有限公司 | 一种寄生参数压缩提取系统及方法 |
CN117215500A (zh) * | 2023-11-09 | 2023-12-12 | 北京友友天宇系统技术有限公司 | 一种突破LMDBKey长度的方法及系统 |
CN117331512A (zh) * | 2023-12-01 | 2024-01-02 | 芯动微电子科技(武汉)有限公司 | 对gpu核内存储器执行写操作的数据压缩及处理方法 |
-
2022
- 2022-03-11 CN CN202210244342.2A patent/CN114610650A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098456A (zh) * | 2022-08-25 | 2022-09-23 | 北京探境科技有限公司 | 文件处理方法、装置、存储介质及电子设备 |
CN117220686A (zh) * | 2023-09-18 | 2023-12-12 | 青岛展诚科技有限公司 | 一种寄生参数压缩提取系统及方法 |
CN117220686B (zh) * | 2023-09-18 | 2024-02-23 | 青岛展诚科技有限公司 | 一种寄生参数压缩提取系统及方法 |
CN117215500A (zh) * | 2023-11-09 | 2023-12-12 | 北京友友天宇系统技术有限公司 | 一种突破LMDBKey长度的方法及系统 |
CN117215500B (zh) * | 2023-11-09 | 2024-01-23 | 北京友友天宇系统技术有限公司 | 一种突破LMDB Key长度的方法及系统 |
CN117331512A (zh) * | 2023-12-01 | 2024-01-02 | 芯动微电子科技(武汉)有限公司 | 对gpu核内存储器执行写操作的数据压缩及处理方法 |
CN117331512B (zh) * | 2023-12-01 | 2024-04-12 | 芯动微电子科技(武汉)有限公司 | 对gpu核内存储器执行写操作的数据压缩及处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114610650A (zh) | 内存压缩方法、装置、存储介质及电子设备 | |
WO2022062537A1 (zh) | 数据压缩方法、装置及计算机可读存储介质 | |
CN110413812B (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
CN103546158A (zh) | 压缩深度高速缓存 | |
CN107680144B (zh) | 一种WebP文件转换的方法及装置 | |
US11817886B2 (en) | Parallel decompression of compressed data streams | |
CN111857550A (zh) | 用于数据去重的方法、设备以及计算机可读介质 | |
CN114723033B (zh) | 数据处理方法、装置、ai芯片、电子设备及存储介质 | |
CN111491169B (zh) | 一种数字图像压缩方法、装置、设备、介质 | |
KR20200094364A (ko) | 이미지 파일의 블록 간 차이를 통한 압축율 향상 방법 및 시스템 | |
CN105096235A (zh) | 图形处理方法及图形处理装置 | |
CN109088636B (zh) | 一种数据处理方法、系统及电子设备和存储介质 | |
CN108389153B (zh) | 一种视图加载的方法及终端设备 | |
CN109146765B (zh) | 一种图像处理方法、主处理器、协处理器及电子设备 | |
CN117112215A (zh) | 内存分配方法、设备及存储介质 | |
CN113379038A (zh) | 数据处理方法和电子设备 | |
CN111049836A (zh) | 数据处理方法、电子设备及计算机可读存储介质 | |
CN110175269B (zh) | 一种顶点索引的压缩及解压缩方法、装置及计算机存储介质 | |
CN111914987A (zh) | 基于神经网络的数据处理方法及装置、设备和可读介质 | |
CN111639055B (zh) | 差分包计算方法、装置、设备及存储介质 | |
CN111427550A (zh) | 一种对象创建方法、终端装置及存储介质 | |
CN109886858B (zh) | 一种数据处理的方法及装置 | |
CN117435259B (zh) | Vpu的配置方法、装置、电子设备及计算机可读存储介质 | |
CN116204201B (zh) | 业务处理方法和装置 | |
CN101594480A (zh) | 一种字幕数据处理的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |