CN114490432A - 内存处理方法、装置、电子设备和计算机可读存储介质 - Google Patents
内存处理方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN114490432A CN114490432A CN202210038316.4A CN202210038316A CN114490432A CN 114490432 A CN114490432 A CN 114490432A CN 202210038316 A CN202210038316 A CN 202210038316A CN 114490432 A CN114490432 A CN 114490432A
- Authority
- CN
- China
- Prior art keywords
- memory
- target
- value
- historical
- updated
- 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
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
本申请实施例公开了一种内存处理方法、装置、电子设备和计算机可读存储介质;在本申请实施例中,获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,所述目标内存表包括预设数量的历史内存值;确定所述目标内存表中历史内存值的目标平均值;若所述目标平均值小于或等于当前内存值,则根据所述当前内存值更新所述目标内存表,得到更新后目标内存表;根据所述更新后目标内存表中历史内存值,预测所述目标应用程序下次启动时需要的预测内存值;若所述预测内存值大于所述电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,所述更新剩余内存值大于或等于所述预测内存值。本申请实施例可以避免应用程序启动时出现卡顿现象。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种内存处理方法、装置、电子设备和计算机可读存储介质。
背景技术
随着科学技术的发展,应用程序越来越多,人们下载在电子设备上的应用程序也越来越多。
当启动应用程序时,会占用电子设备的内存。如果应用程序占用的内存大于电子设备剩余的内存,则应用程序会启动得较慢,从而出现卡顿现象。
发明内容
本申请实施例提供一种内存处理方法、装置、电子设备和计算机可读存储介质,可以解决应用程序启动时卡顿的技术问题。
一种内存处理方法,包括:
获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,上述目标内存表包括预设数量的历史内存值;
确定上述目标内存表中历史内存值的目标平均值;
若上述目标平均值小于或等于当前内存值,则根据上述当前内存值更新上述目标内存表,得到更新后目标内存表;
根据上述更新后目标内存表中历史内存值,预测上述目标应用程序下次启动时需要的预测内存值;
若上述预测内存值大于上述电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,上述更新剩余内存值大于或等于上述预测内存值。
相应地,本申请实施例提供一种内存处理装置,包括:
获取模块,用于获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,上述目标内存表包括预设数量的历史内存值;
确定模块,用于确定上述目标内存表中历史内存值的目标平均值;
更新模块,用于若上述目标平均值小于或等于当前内存值,则根据上述当前内存值更新上述目标内存表,得到更新后目标内存表;
预测模块,用于根据上述更新后目标内存表中历史内存值,预测上述目标应用程序下次启动时需要的预测内存值;
回收模块,用于若上述预测内存值大于上述电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,上述更新剩余内存值大于或等于上述预测内存值。
此外,本申请实施例还提供一种电子设备,包括处理器和存储器,上述存储器存储有计算机程序,上述处理器用于运行上述存储器内的计算机程序实现本申请实施例提供的内存处理方法。
此外,本申请实施例还提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序适于处理器进行加载,以执行本申请实施例所提供的任一种内存处理方法。
此外,本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本申请实施例所提供的任一种内存处理方法。
在本申请实施例中,先获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,目标内存表包括预设数量的历史内存值。然后确定目标内存表中历史内存值的目标平均值。若目标平均值小于或等于当前内存值,则根据当前内存值更新目标内存表,得到更新后目标内存表。接着根据更新后目标内存表中历史内存值,预测目标应用程序下次启动时需要的预测内存值。若预测内存值大于电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,更新剩余内存值大于预测内存值。
即在本申请实施例中,如果目标平均值小于或等于当前内存值,则根据当前内存值更新目标内存表,得到更新后目标内存表,然后接着根据更新后目标内存表中历史内存值,预测目标应用程序下次启动时需要的预测内存值。如果预测内存值大于电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,使得更新剩余内存值大于预测内存值,从而使得在目标应用程序下次启动时,更新剩余内存值足够被目标应用程序使用,进而避免出现卡顿现象。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的图像处理方法的流程示意图;
图2是本申请实施例提供的目标平均值的确定方法的示意图;
图3是本申请实施例提供的目标内存表的更新方法的示意图;
图4是本申请实施例提供的预测内存值的预测方法的示意图;
图5是本申请实施例提供的框架的示意图;
图6是本申请实施例提供的内存处理装置的结构示意图;
图7是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种内存处理方法、装置、电子设备和计算机可读存储介质。其中,该内存处理装置可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
另外,本申请实施例中的“多个”指两个或两个以上。本申请实施例中的“第一”和“第二”等用于区分描述,而不能理解为暗示相对重要性。
以下分别进行详细说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
在本实施例中,将从内存处理装置的角度进行描述,该内存处理装置具体可以集成在服务器或终端等设备中,为了方便对本申请的内存处理方法进行说明,以下将以内存处理装置集成在终端中进行详细说明,即以终端作为执行主体进行详细说明。
请参阅图1,图1是本申请一实施例提供的内存处理方法的流程示意图。该内存处理方法可以包括:
S101、获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,目标内存表包括预设数量的历史内存值。
每个应用程序存在一个对应的内存表,每个内存表包括该应用程序每次启动时占用的预设数量的历史内存值。
当前内存值是目标应用程序最后一次启动时占用的内存值。终端可以在目标应用程序最后一次启动时获取终端中目标应用程序占用的当前内存值和目标内存表。
或者,终端也可以根据目标应用程序的历史使用时间,预测目标应用程序下次启动的目标时间,然后在目标时间之前的指定时间段内获取终端中目标应用程序占用的当前内存值和目标内存表。
预设数量可以根据实际情况进行设置,本实施例在此不做限定。
S102、确定目标内存表中历史内存值的目标平均值。
其中,参照图2,终端确定目标内存表中历史平均值的目标平均值的过程可以为:
终端确定目标内存表中历史内存值的个数。若目标内存表中历史内存值的个数等于第一预设阈值,则将目标内存表中前M位历史内存值和后M位历史内存值删掉,得到第一内存表,M为整数;
将第一内存表中历史内存值的平均值作为目标平均值。
第一预设阈值为目标内存表的容量,即目标内存表最多可以存储的历史内存值的个数。第一预设阈值可以根据实际情况进行选择,比如,可以将第一预设阈值设置为60,本实施例在此不做限定。
M可以根据实际情况进行选择,比如,可以将M设置为10,本实施例在此不做具体限定。
在本实施例中,当目标内存表中历史内存值的个数等于第一预设阈值时,将目标内存表中前M位历史内存值和后M位历史内存值删掉,得到第一内存表,然后将第一内存表中历史内存值的平均值作为目标平均值,从而使得目标平均值更加准确。
若目标内存表中历史内存值的个数属于预设阈值区间,则将目标内存表中前K位历史内存值和后K位历史内存值删掉,得到第二内存表,K小于M,且K为整数;
将第二内存表中历史内存值的平均值作为目标平均值。
预设阈值区间和K可以根据实际情况进行选择,比如,可以将预设阈值区间设置为开区间(5,60),将K设置为1,本实施例在此不做限定。
若目标内存表中历史内存值的个数小于或等于第二预设阈值,则将目标内存表中历史内存值的平均值作为目标平均值。
第二预设阈值可以根据实际情况进行选择,比如,可以将第二预设阈值设置为5,本实施例在此不做限定。
在本实施例中,通过目标内存表中历史内存值的个数确定需删掉的历史内存值的个数,从而使得得到的目标平均值更加准确。
S103、若目标平均值小于或等于当前内存值,则根据当前内存值更新目标内存表,得到更新后目标内存表。
由于当目标平均值小于或等于当前内存值时,根据目标平均值得到的预测内存值可能是不准确的,因此,若目标平均值小于或等于当前内存值,则根据当前内存值更新目标内存表,得到更新后目标内存表,从而使得根据更新后目标内存表得到的预测内存值更加准确。
若目标平均值小于或等于当前内存值,终端可以直接将当前内存值存储至目标内存表中,得到更新后目标内存表。
或者,若目标平均值小于或等于当前内存值,终端也可以将当前内存值插入至目标内存表中,得到候选目标内存表。然后终端查看候选目标内存表中历史内存值的个数。如果候选目标内存表中历史内存值的个数大于预设阈值,则删除候选目标内存表中最小历史内存值或最大历史内存值,得到更新后目标内存表。如果候选目标内存表中历史内存值的个数小于或等于预设阈值,则将候选目标内存表作为更新后目标内存表。
在本实施例中,如果候选目标内存表中历史内存值的个数大于预设阈值,则删除候选目标内存表中最小历史内存值或最大历史内存值,得到更新后目标内存表,如果候选目标内存表中历史内存值的个数小于或等于预设阈值,则将候选目标内存表作为更新后目标内存表,使得更新后内存表中历史内存值的个数不会超出预设阈值,从而使得目标内存表中历史内存值的个数和更新后目标内存表中历史内存值的个数之间的的差值在预设范围内,进而使得根据更新后目标内存表预测得到的预测内存值更加准确。
其中,参照图3,如果候选目标内存表中历史内存值的个数大于预设阈值,则删除候选目标内存表中最小历史内存值或最大历史内存值的过程如下:
确定候选目标内存表中历史内存值的个数;
若候选目标内存表中历史内存值的个数大于预设阈值且预设标志位为第一目标值,则删除候选目标内存表中最小历史内存值,得到更新后目标内存表,并将预设标志位修改为第二目标值;
若候选目标内存表中历史内存值的个数大于预设阈值且预设标志位为第二目标值,则删除候选目标内存表中最大历史内存值,得到更新后目标内存表,并将预设标志位修改为第一目标值。
在本实施例中,轮流删除候选目标内存表中最大历史内存值和最小历史内存值,从而使得根据更新后目标内存表预测得到的预测内存值更加准确。
第一目标值和第二目标值可以根据实际情况进行设置,比如,可以将第一目标值设置为1,第二目标值设置为0。
需要说明的是,终端得到更新后目标内存表之后,将更新后目标内存表进行存储,以便在下次预测目标应用程序启动时需要占用的预测内存值进行使用。
若目标平均值大于当前内存值,终端则将目标平均值作为目标应用程序下次启动时需要的预测内存值。
S104、根据更新后目标内存表中历史内存值,预测目标应用程序下次启动时需要的预测内存值。
终端在得到更新后目标内存表之后,可以对更新后目标内存表中历史内存值进行拟合,得到目标曲线,然后从目标曲线上查找目标应用程序下次启动时需要的预测内存值。
或者,终端在得到更新后目标内存表之后,将更新后目标内存表中大于当前内存值的历史内存值作为目标应用程序下次启动时需要的预测内存值,从而保证预测内存值大于目标应用程序下次启动实际需要占用的内存值。
在本实施例中,如果目标平均值等于或大于当前内存值,则将目标平均值作为预测内存值,如果目标平均值小于当前内存值,则将大于当前内存值的历史内存值作为预测内存值,从而保证在目标应用程序下次启动时预测内存值足够被使用。
在一些实施例中,更新后目标内存表中历史内存值以从小到大的顺序存储在更新后目标内存表中,则将更新后目标内存表中大于当前内存值的历史内存值作为目标应用程序下次启动时需要的预测内存值,包括:
将更新后目标内存表中当前内存值之后的第N位历史内存值作为目标应用程序下次启动时需要的预测内存值,N为整数。
在本实施例中,将更新后目标内存表中当前内存值之后的第N位历史内存值作为目标应用程序下次启动时需要的预测内存值,比如,N取三,即将当前内存值之后的第三位历史内存值作为目标应用程序下次启动时需要的预测内存值,保证在目标应用程序下次启动时预测内存值足够被使用,同时保证预测内存值跟目标应用程序下次启动时实际需要占用的内存值之间的差值在预设区间内,进而保证不会出现较多的内存值被闲置的现象。
在另一些实施例中,参照图4,将更新后目标内存表中当前内存值之后的第N位历史内存值作为目标应用程序下次启动时需要的预测内存值,N为整数。包括:
若更新后目标内存表包含当前内存值之后的第N位历史内存值,则将更新后目标内存表中当前内存值之后的第N位历史内存值作为目标应用程序下次启动时需要的预测内存值,N为整数;
若更新后目标内存表中未包含当前内存值之后的第N位历史内存值,则获取预设内存值,并将预设内存值作为目标应用程序下次启动时需要的预测内存值。
预设内存值可以根据实际情况进行设置,比如,可以将预设内存值设置为18*4*1024kb。在本实施例中,如果更新后目标内存表包含当前内存值之后的第N位历史内存值,则将第N位历史内存值作为预测内存值,如果更新后目标内存表中未包含当前内存值之后的第N位历史内存值,则将预设内存值作为目标应用程序下次启动时需要的预测内存值,从而保证在目标应用程序下次启动时预测内存值足够被使用。
S105、若预测内存值大于电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,更新剩余内存值大于或等于预测内存值。
如果终端是在目标时间之前的指定时间段内获取终端中目标应用程序占用的当前内存值和目标内存表,则终端在得到预测内存值之后,如果预测内存值大于电子设备的剩余内存值,可以直接执行内存回收操作。
如果终端是在目标应用程序最后一次启动时获取终端中目标应用程序占用的当前内存值和目标内存表,则终端可以在目标时间之前的指定时间段内再将预测内存值与剩余内存值进行比较,如果预测内存值大于电子设备的剩余内存值,再执行内存回收操作。
下面参照图5,对终端中执行以上步骤的框架图进行说明。
终端包括内存管理辅助模块MemoryInfoManager、当前内存值获取模块PackageRecord、回收清理模块AbstractStrategy以及收集模块AppRecord。
其中,内存管理辅助模块用于预测目标应用程序下次启动时需要的预测内存值。其里面包括内存表记录单元addPss和计算单元getPredictSize,内存表记录单元用于存储目标内存表,计算单元用于计算目标内存表中历史内存值的目标平均值,并根据目标平均值和当前内存值计算预测内存值。
当前内存值获取模块用于获取目标应用程序的当前内存值。回收清理模块用于根据预测内存值计算需要回收的内存。收集模块用于收集目标应用程序的历史内存值,并将历史内存值发送给内存管理辅助模块。
由以上可知,在本申请实施例中,先获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,目标内存表包括预设数量的历史内存值。然后确定目标内存表中历史内存值的目标平均值。若目标平均值小于或等于当前内存值,则根据当前内存值更新目标内存表,得到更新后目标内存表。接着根据更新后目标内存表中历史内存值,预测目标应用程序下次启动时需要的预测内存值。若预测内存值大于电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,更新剩余内存值大于预测内存值。
即在本申请实施例中,如果目标平均值小于或等于当前内存值,则根据当前内存值更新目标内存表,得到更新后目标内存表,然后接着根据更新后目标内存表中历史内存值,预测目标应用程序下次启动时需要的预测内存值。如果预测内存值大于电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,使得更新剩余内存值大于预测内存值,从而使得在目标应用程序下次启动时,更新剩余内存值足够被目标应用程序使用,进而避免出现卡顿现象。
为便于更好的实施本申请实施例提供的内存处理方法,本申请实施例还提供一种基于上述内存处理方法的装置。其中名词的含义与上述内存处理方法中相同,具体实现细节可以参考方法实施例中的说明。
例如,如图6所示,该内存处理装置可以包括:
获取模块601,用于获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,目标内存表包括预设数量的历史内存值;
确定模块602,用于确定目标内存表中历史内存值的目标平均值;
更新模块603,用于若目标平均值小于或等于当前内存值,则根据当前内存值更新目标内存表,得到更新后目标内存表;
预测模块604,用于根据更新后目标内存表中历史内存值,预测目标应用程序下次启动时需要的预测内存值;
回收模块605,用于若预测内存值大于电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,更新剩余内存值大于或等于预测内存值。
可选地,预测模块604具体用于执行:
将更新后目标内存表中大于当前内存值的历史内存值作为目标应用程序下次启动时需要的预测内存值。
可选地,更新后目标内存表中历史内存值以从小到大的顺序存储在更新后目标内存表中。
相应地,预测模块604具体用于执行:
将更新后目标内存表中当前内存值之后的第N位历史内存值作为目标应用程序下次启动时需要的预测内存值,N为整数。
可选地,预测模块604具体用于执行:
若更新后目标内存表包含所述当前内存值之后的第N位历史内存值,则将更新后目标内存表中当前内存值之后的第N位历史内存值作为目标应用程序下次启动时需要的预测内存值,N为整数;
若更新后目标内存表中未包含当前内存值之后的第N位历史内存值,则获取预设内存值,并将预设内存值作为目标应用程序下次启动时需要的预测内存值。
可选地,确定模块602具体用于执行:
若目标内存表中历史内存值的个数等于第一预设阈值,则将目标内存表中前M位历史内存值和后M位历史内存值删掉,得到第一内存表,M为整数;
将第一内存表中历史内存值的平均值作为目标平均值。
可选地,确定模块602具体用于执行:
若目标内存表中历史内存值的个数属于预设阈值区间,则将目标内存表中前K位历史内存值和后K位历史内存值删掉,得到第二内存表,K小于M,且K为整数;
将第二内存表中历史内存值的平均值作为目标平均值。
可选地,确定模块602具体用于执行:
若目标内存表中历史内存值的个数小于或等于第二预设阈值,则将目标内存表中历史内存值的平均值作为目标平均值。
可选地,更新模块603具体用于执行:
若目标平均值小于或等于当前内存值,则将当前内存值插入至目标内存表中,得到候选目标内存表;
若候选目标内存表中历史内存值的个数大于预设阈值,则删除候选目标内存表中最小历史内存值或最大历史内存值,得到更新后目标内存表;
若候选目标内存表中历史内存值的个数小于或等于预设阈值,则将候选目标内存表作为更新后目标内存表。
可选地,更新模块603具体用于执行:
若候选目标内存表中历史内存值的个数大于预设阈值且预设标志位为第一目标值,则删除候选目标内存表中最小历史内存值,得到更新后目标内存表,并将预设标志位修改为第二目标值;
若候选目标内存表中历史内存值的个数大于预设阈值且预设标志位为第二目标值,则删除候选目标内存表中最大历史内存值,得到更新后目标内存表,并将预设标志位修改为第一目标值。
具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施方式以及对应的有益效果可参见前面的方法实施例,在此不再赘述。
本申请实施例还提供一种电子设备,该电子设备可以是服务器或终端等,如图7所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器701、一个或一个以上计算机可读存储介质的存储器702、电源703和输入单元704等部件。本领域技术人员可以理解,图7中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器701是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器702内的计算机程序和/或模块,以及调用存储在存储器702内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器701可包括一个或多个处理核心;优选的,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。
存储器702可用于存储计算机程序以及模块,处理器701通过运行存储在存储器702的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器702还可以包括存储器控制器,以提供处理器701对存储器702的访问。
电子设备还包括给各个部件供电的电源703,优选的,电源703可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源703还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元704,该输入单元704可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器701会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的计算机程序,从而实现各种功能,比如:
获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,目标内存表包括预设数量的历史内存值;
确定目标内存表中历史内存值的目标平均值;
若目标平均值小于或等于当前内存值,则根据当前内存值更新目标内存表,得到更新后目标内存表;
根据更新后目标内存表中历史内存值,预测目标应用程序下次启动时需要的预测内存值;
若预测内存值大于电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,更新剩余内存值大于或等于预测内存值。
以上各个操作的具体实施方式以及对应的有益效果可参见上文对图像处理方法的详细描述,在此不作赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种内存处理方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,目标内存表包括预设数量的历史内存值;
确定目标内存表中历史内存值的目标平均值;
若目标平均值小于或等于当前内存值,则根据当前内存值更新目标内存表,得到更新后目标内存表;
根据更新后目标内存表中历史内存值,预测目标应用程序下次启动时需要的预测内存值;
若预测内存值大于电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,更新剩余内存值大于或等于预测内存值。
以上各个操作的具体实施方式以及对应的有益效果可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种内存处理方法中的步骤,因此,可以实现本申请实施例所提供的任一种内存处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
其中,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述内存处理方法。
以上对本申请实施例所提供的一种内存处理方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种内存处理方法,其特征在于,包括:
获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,所述目标内存表包括预设数量的历史内存值;
确定所述目标内存表中历史内存值的目标平均值;
若所述目标平均值小于或等于当前内存值,则根据所述当前内存值更新所述目标内存表,得到更新后目标内存表;
根据所述更新后目标内存表中历史内存值,预测所述目标应用程序下次启动时需要的预测内存值;
若所述预测内存值大于所述电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,所述更新剩余内存值大于或等于所述预测内存值。
2.根据权利要求1所述的内存处理方法,其特征在于,所述根据所述更新后目标内存表中历史内存值,预测所述目标应用程序下次启动时需要的预测内存值,包括:
将所述更新后目标内存表中大于所述当前内存值的历史内存值作为所述目标应用程序下次启动时需要的预测内存值。
3.根据权利要求2所述的内存处理方法,其特征在于,所述更新后目标内存表中历史内存值以从小到大的顺序存储在所述更新后目标内存表中;
相应地,所述将所述更新后目标内存表中大于所述当前内存值的历史内存值作为所述目标应用程序下次启动时需要的预测内存值,包括:
将所述更新后目标内存表中所述当前内存值之后的第N位历史内存值作为所述目标应用程序下次启动时需要的预测内存值,N为整数。
4.根据权利要求3所述的内存处理方法,其特征在于,所述将所述更新后目标内存表中所述当前内存值之后的第N位历史内存值作为所述目标应用程序下次启动时需要的预测内存值,N为整数。包括:
若所述更新后目标内存表包含所述当前内存值之后的第N位历史内存值,则将所述更新后目标内存表中所述当前内存值之后的第N位历史内存值作为所述目标应用程序下次启动时需要的预测内存值,N为整数;
若所述更新后目标内存表中未包含所述当前内存值之后的第N位历史内存值,则获取预设内存值,并将所述预设内存值作为所述目标应用程序下次启动时需要的预测内存值。
5.根据权利要求2所述的内存处理方法,其特征在于,所述确定所述目标内存表中历史内存值的目标平均值,包括:
若所述目标内存表中历史内存值的个数等于第一预设阈值,则将所述目标内存表中前M位历史内存值和后M位历史内存值删掉,得到第一内存表,M为整数;
将所述第一内存表中历史内存值的平均值作为目标平均值。
6.根据权利要求5所述的内存处理方法,其特征在于,所述确定所述目标内存表中历史内存值的目标平均值,包括:
若所述目标内存表中历史内存值的个数属于预设阈值区间,则将所述目标内存表中前K位历史内存值和后K位历史内存值删掉,得到第二内存表,K小于M,且K为整数;
将所述第二内存表中历史内存值的平均值作为目标平均值。
7.根据权利要求6所述的内存处理方法,其特征在于,所述确定所述目标内存表中历史内存值的目标平均值,包括:
若所述目标内存表中历史内存值的个数小于或等于第二预设阈值,则将所述目标内存表中历史内存值的平均值作为目标平均值。
8.根据权利要求1所述的内存处理方法,其特征在于,所述若所述目标平均值小于或等于当前内存值,则根据所述当前内存值更新所述目标内存表,得到更新后目标内存表;
若所述目标平均值小于或等于当前内存值,则将所述当前内存值插入至所述目标内存表中,得到候选目标内存表;
若所述候选目标内存表中历史内存值的个数大于预设阈值,则删除所述候选目标内存表中最小历史内存值或最大历史内存值,得到更新后目标内存表;
若所述候选目标内存表中历史内存值的个数小于或等于所述预设阈值,则将候选目标内存表作为更新后目标内存表。
9.根据权利要求8所述的内存处理方法,其特征在于,所述若所述候选目标内存表中历史内存值的个数大于预设阈值,则删除所述候选目标内存表中最小历史内存值或最大历史内存值,得到更新后目标内存表,包括:
若所述候选目标内存表中历史内存值的个数大于预设阈值且预设标志位为第一目标值,则删除所述候选目标内存表中最小历史内存值,得到更新后目标内存表,并将所述预设标志位修改为第二目标值;
若所述候选目标内存表中历史内存值的个数大于预设阈值且预设标志位为第二目标值,则删除所述候选目标内存表中最大历史内存值,得到更新后目标内存表,并将所述预设标志位修改为第一目标值。
10.一种内存处理装置,其特征在于,包括:
获取模块,用于获取电子设备中目标应用程序启动时占用的当前内存值和目标内存表,所述目标内存表包括预设数量的历史内存值;
确定模块,用于确定所述目标内存表中历史内存值的目标平均值;
更新模块,用于若所述目标平均值小于或等于当前内存值,则根据所述当前内存值更新所述目标内存表,得到更新后目标内存表;
预测模块,用于根据所述更新后目标内存表中历史内存值,预测所述目标应用程序下次启动时需要的预测内存值;
回收模块,用于若所述预测内存值大于所述电子设备的剩余内存值,则执行内存回收操作,得到更新剩余内存值,所述更新剩余内存值大于或等于所述预测内存值。
11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行权利要求1至9任一项所述的内存处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行权利要求1至9任一项所述的内存处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210038316.4A CN114490432A (zh) | 2022-01-13 | 2022-01-13 | 内存处理方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210038316.4A CN114490432A (zh) | 2022-01-13 | 2022-01-13 | 内存处理方法、装置、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490432A true CN114490432A (zh) | 2022-05-13 |
Family
ID=81511864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210038316.4A Pending CN114490432A (zh) | 2022-01-13 | 2022-01-13 | 内存处理方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490432A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904616A (zh) * | 2022-11-04 | 2023-04-04 | 北京天融信网络安全技术有限公司 | 虚拟机热迁移方法、装置、设备及介质 |
-
2022
- 2022-01-13 CN CN202210038316.4A patent/CN114490432A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904616A (zh) * | 2022-11-04 | 2023-04-04 | 北京天融信网络安全技术有限公司 | 虚拟机热迁移方法、装置、设备及介质 |
CN115904616B (zh) * | 2022-11-04 | 2023-11-10 | 北京天融信网络安全技术有限公司 | 虚拟机热迁移方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104808952B (zh) | 数据缓存方法及装置 | |
CN107608778B (zh) | 应用程序管控方法、装置、存储介质及电子设备 | |
CN113656179A (zh) | 云计算资源的调度方法及装置、电子设备和存储介质 | |
CN111143039A (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
CN113807515A (zh) | 模型训练的方法、装置、计算机设备及存储介质 | |
CN114490432A (zh) | 内存处理方法、装置、电子设备和计算机可读存储介质 | |
CN112044061B (zh) | 游戏画面处理方法、装置、电子设备以及存储介质 | |
CN111381953B (zh) | 进程管理方法、装置、存储介质及电子设备 | |
CN113590304A (zh) | 一种业务数据处理方法、装置、计算机设备及存储介质 | |
CN114090911A (zh) | 界面处理方法、装置、计算机设备及计算机可读存储介质 | |
CN115499315A (zh) | Ota升级任务的执行方法、装置和电子设备 | |
CN114647509A (zh) | 内存清理方法、装置、存储介质及电子设备 | |
CN115202643A (zh) | 图标资源的删除方法、装置、电子设备及介质 | |
CN114238223A (zh) | 图片移除方法、装置、计算机设备及计算机可读存储介质 | |
CN113904940A (zh) | 资源调整方法、装置、电子设备和计算机可读存储介质 | |
CN115964061A (zh) | 插件更新方法、装置、电子设备和计算机可读存储介质 | |
CN114090054A (zh) | 智能设备升级方法、装置、存储介质及电子设备 | |
CN109961796B (zh) | 音频数据处理方法、装置和存储介质 | |
CN114647428A (zh) | 信息推送方法、装置、电子设备和计算机可读存储介质 | |
CN117519867A (zh) | 应用展示方法、装置、存储介质及电子设备 | |
CN114595062A (zh) | 内存管理方法、装置、存储介质及电子设备 | |
CN115563162A (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN113377796A (zh) | 自动更新埋点事件及其字段的方法、装置及存储介质 | |
CN114385252A (zh) | 设备控制方法、装置、存储介质及电子设备 | |
CN117407213A (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 |