CN111752851B - 一种内存回收方法及装置 - Google Patents
一种内存回收方法及装置 Download PDFInfo
- Publication number
- CN111752851B CN111752851B CN201910239140.7A CN201910239140A CN111752851B CN 111752851 B CN111752851 B CN 111752851B CN 201910239140 A CN201910239140 A CN 201910239140A CN 111752851 B CN111752851 B CN 111752851B
- Authority
- CN
- China
- Prior art keywords
- preset threshold
- memory
- threshold value
- time
- time interval
- 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.)
- Active
Links
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及计算机应用技术领域,特别涉及一种内存回收方法及装置。
背景技术
为了提高应用程序读写文件时的性能,操作***会为应用程序所要读写的文件分配一定的内存用来缓存该文件,这样应用程序就可以从为文件分配的内存中读写文件,从而提高应用程序的读写性能。比如,Linux操作***会为应用程序所要读写的文件分配一个Page Cache,以使得各个应用程序能够从为文件分配的Page Cache中读写文件,从而提高应用程序的读写性能。
实际应用中,应用程序从内存中读写文件后,为了能够方便应用程序再次读写文件,操作***并不会回收为文件分配的内存,而随着需要读写的文件的增多,操作***中的内存会逐渐被全部占用。
现有技术提供的内存回收机制中,操作***是在为某一文件分配内存时,检测到剩余的内存大小不足以存储该文件之后,才会对被占用的内存进行回收并为该文件分配内存,也就是应用程序只有等到操作***内存回收完毕并为文件分配内存之后才能够读写文件,导致读写效率低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种内存回收方法及装置。所述技术方案如下:
第一方面,提供了一种内存回收方法,所述方法包括:
监测剩余内存是否小于第一预设阈值,其中,所述第一预设阈值为通过第一操作***配置接口获取的阈值;
如果是,对被占用的内存进行回收,直至剩余内存达到第二预设阈值,其中,所述第二预设阈值为通过第二操作***配置接口获取的阈值。
可选的,所述对被占用的内存进行回收的步骤,包括:
调用内存回收进程对被占用的内存进行回收。
可选的,所述方法还包括:
记录所述内存回收进程每次被调用时的时间;
根据所记录的时间,确定所述内存回收进程相邻两次被调用之间的时间间隔;
根据所述时间间隔,调整所述第一预设阈值和/或所述第二预设阈值。
可选的,所述根据所记录的时间,确定所述内存回收进程相邻两次被调用之间的时间间隔的步骤,包括:
判断所述内存回收进程被调用的次数是否达到预设次数;
如果是,利用所记录的时间和所述预设次数,计算所述内存回收进程相邻两次被调用之间的平均时间间隔,作为所述时间间隔。
可选的,所述根据所述时间间隔,调整所述第一预设阈值和/或所述第二预设阈值的步骤,包括:
在所述时间间隔小于第一时间阈值的情况下,减小所述第一预设阈值和/或增大所述第二预设阈值;
在所述时间间隔大于第二时间阈值的情况下,增大所述第一预设阈值和/或减小所述第二预设阈值。
可选的,所述记录所述内存回收进程每次被调用时的时间的步骤之后,还包括:
记录所述内存回收进程每次被调用时的CPU负载;
所述根据所述时间间隔,调整所述第一预设阈值和/或所述第二预设阈值的步骤,包括:
根据所述时间间隔和所述CPU负载,调整所述第一预设阈值和/或所述第二预设阈值。
可选的,所述根据所述时间间隔和所述CPU负载,调整所述第一预设阈值和/或所述第二预设阈值的步骤,包括:
在所述时间间隔小于第一时间阈值、且所述CPU负载大于第一负载阈值的情况下,减小所述第一预设阈值和/或增大所述第二预设阈值;
在所述时间间隔大于第二时间阈值、且所述CPU负载小于第二负载阈值的情况下,增大所述第一预设阈值和/或减小所述第二预设阈值。
第二方面,提供了一种内存回收装置,包括:
监测模块,用于监测剩余内存是否小于第一预设阈值,并在监测结果为是时触发回收模块,其中,所述第一预设阈值为通过第一操作***配置接口获取的阈值;
所述回收模块,用于对被占用的内存进行回收,直至剩余内存达到第二预设阈值,其中,所述第二预设阈值为通过第二操作***配置接口获取的阈值。
可选的,所述回收模块,用于调用内存回收进程对被占用的内存进行回收。
可选的,所述装置还包括:
第一记录模块,用于记录所述内存回收进程每次被调用时的时间;
确定模块,用于根据所记录的时间,确定所述内存回收进程相邻两次被调用之间的时间间隔;
调整模块,用于根据所述时间间隔,调整所述第一预设阈值和/或所述第二预设阈值。
可选的,所述确定模块,用于
判断所述内存回收进程被调用的次数是否达到预设次数;
如果是,利用所记录的时间和所述预设次数,计算所述内存回收进程相邻两次被调用之间的平均时间间隔,作为所述时间间隔。
可选的,所述调整模块,用于
在所述时间间隔小于第一时间阈值的情况下,减小所述第一预设阈值和/或增大所述第二预设阈值;
在所述时间间隔大于第二时间阈值的情况下,增大所述第一预设阈值和/或减小所述第二预设阈值。
可选的,所述装置还包括:
第二记录模块,用于记录所述内存回收进程每次被调用时的CPU负载;
所述调整模块,还用于根据所述时间间隔和所述CPU负载,调整所述第一预设阈值和/或所述第二预设阈值。
可选的,所述调整模块,具体用于
在所述时间间隔小于第一时间阈值、且所述CPU负载大于第一负载阈值的情况下,减小所述第一预设阈值和/或增大所述第二预设阈值;
在所述时间间隔大于第二时间阈值、且所述CPU负载小于第二负载阈值的情况下,增大所述第一预设阈值和/或减小所述第二预设阈值。
第三方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述任一所述的内存回收方法。
本发明实施例提供的内存回收方法及装置,能够实时检测***的剩余内存大小,并在监测到剩余内存小于第一预设阈值时,对被占用的内存进行回收,直至操作***剩余内存达到第二预设阈值。应用本发明实施例提供的方案,用户能够根据自身的需求设置第一预设阈值和第二预设阈值,以实现将操作***的剩余内存控制在预定范围之内,防止出现操作***为应用程序分配内存时出现内存不足的情况。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种内存回收场景示意图;
图2是本发明实施例提供的一种内存回收方法的流程示意图;
图3是本发明实施例提供的另一种内存回收方法的流程示意图;
图4是本发明实施例提供的一种内存回收装置的结构示意图;
图5是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种内存回收方法,该方法应用于图1所示的***框架中,该***框架包括:第一操作***配置接口、第二操作***配置接口和CPU(CentralProcessing Unit,中央处理器);CPU内嵌入有操作***,操作***可以管理与配置内存、决定***资源供需的优先次序以及与操作***配置接口进行信息交互。
在实施中,用户配置好操作***配置文件之后,CPU通过第一操作***配置接口获取第一预设阈值,以及通过第二操作***配置接口获取第二预设阈值;操作***获取第一预设阈值和第二预设阈值之后,监测剩余内存是否小于第一预设阈值,并在剩余内存小于第一预设阈值的情况下,对被占用的内存进行回收,直至剩余内存达到第二预设阈值结束。
下面将结合具体实施方式,对图2所示的回收流程进行详细的说明,内容可以如下:
步骤200,监测剩余内存是否小于第一预设阈值,并在监测结果为是时执行步骤210。
其中,第一预设阈值为通过第一操作***配置接口获取的阈值。
步骤210,对被占用的内存进行回收,直至剩余内存达到第二预设阈值。
其中,第二预设阈值为通过第二操作***配置接口获取的阈值。
在实施中,第一预设阈值用于限制剩余内存的下限,第二预设阈值用于限制剩余内存的上限,通常第一预设阈值要小于第二预设阈值。
上述第一预设阈值可以根据操作***中所管理的总内存来确定,比如,第一预设阈值可以为总内存的20%。
上述第二预设阈值可以根据操作***中所管理的总内存来确定,比如,第二预设阈值可以为总内存的80%。
在实施中,在对被占用的内存进行回收时,可以调用内存回收进程对被占用的内存进行回收。具体的,上述内存回收进程可以采用kswapd进程。
上述第一、第二操作***配置接口可以理解为用于从操作***配置文件中获取限制操作***所管理的剩余内存下限值和上限值的接口,具体的,可以为能够实现数据通信功能的代码。比如,在Linux操作***中,使用watermark[low]来表示第一预设阈值,使用watermark[high]来表示第二预设阈值;相应的,可以设置第一操作***配置接口为:/proc/sys/vm/low_free_kbytes,用来获取第一预设阈值,可以设置第二操作***配置接口为:/proc/sys/vm/high_free_kbytes,用来获取第二预设阈值。
通过操作***配置接口用户能够根据自身的需求任意设置第一预设阈值和第二预设阈值,以实现将操作***所管理的剩余内存控制在预设范围之内,防止出现操作***为应用程序分配内存时出现内存不足的情况。
参见图3是本发明实施例提供的另一种内存回收方法的流程示意图,该方法包括:
步骤300,监测剩余内存是否小于第一预设阈值,并在监测结果为是时执行步骤310。
步骤310,调用内存回收进程对被占用的内存进行回收,直至剩余内存达到第二预设阈值。
需要说明的是,步骤300-步骤310与上述步骤200-步骤210的具体实现方式相同,在此不再赘述。
步骤320,记录内存回收进程每次被调用时的时间。
在实施中,可以利用时间戳来表示内存回收进程每次被调用时的时间。比如,内存回收进程某一次被调用的时间为:2019-03-06 11:45:05;相应的,可以利用该时间对应的时间戳:1551843905来表示本次内存回收进程被调用的时间。
步骤330,根据所记录的时间,确定内存回收进程相邻两次被调用之间的时间间隔。
在实施中,可以计算内存回收进程在相邻两次被调用时的时间戳的差值来得到时间间隔。比如,内存回收进程在相邻两次被调用时的时间戳分别为:1551843905和1551844905,基于此,可以计算出改两次被调用之间的时间间隔为:1000秒。
另一种实现方式中,可以统计多个相邻两次被调用时的时间戳的差值,然后计算所统计的差值的平均值来作为上述时间间隔。具体的,可以判断内存回收进程被调用的次数是否达到预设次数;如果是,则利用所记录的时间和预设次数,计算内存回收进程相邻两次被调用之间的平均时间间隔,作为上述时间间隔。
比如,预设次数为5次,每一次内存回收进程被调用时的时间戳分别为:1551843905、1551844905、1551845805、1551846805和1551847605,相应的,时间间隔则为:[(1551844905-1551843905)+(1551845805-1551844905)+(1551846805-1551845805)+(1551847605-1551846805)]/(5-1)=925。
步骤340,根据时间间隔,调整第一预设阈值和/或第二预设阈值。
在实施中,时间间隔较小则表明内存回收进程被调用的次数比较频繁,此时则可以确定是由于剩余内存一直处于较低的状态,导致操作***频繁调用内存回收进程导致的,也就是设置的第一预设阈值和第二预设阈值之间的差值较小。
因而,一种实现方式中,可以设置一个第一时间阈值来判断内存回收进程被调用的次数是否频繁,具体的,在时间间隔小于第一时间阈值的情况下,确定内存回收进程被调用的次数比较频繁,从而通过减小第一预设阈值和/或增大第二预设阈值的方式来增大两者之间的差值,这样剩余内存则可以被控制在一个较大的区间之内,以此来增大剩余内存,减少内存回收进程被调用的次数。
在实施中,时间间隔较大则表明内存回收进程被调用的次数较少,此时,则可以确定是由于剩余内存一直处于较高的状态,也就是设置的第一预设阈值和第二预设阈值之间的差值较大。而如果剩余内存一直处于一个较高的状态,也就表明已经为应用程序分配的内存相对较少,导致部分剩余内存经常会处于闲置的状态,造成内存资源的浪费。
因而,一种实现方式中,可以设置一个第二时间阈值来判断内存回收进程被调用的次数是否较少,具体的,在时间间隔大于第二时间阈值的情况下,确定内存回收进程被调用的次数较少,从而增大第一预设阈值和/或减小第二预设阈值的方式来减小两者之间的差值,以此来减小剩余内存。
上述第一时间阈值和第二时间阈值是由用户根据自身所需要的剩余内存量来预先设置的阈值。比如,如果用户需要剩余内存量较大时,可以设置一个较大的第一时间阈值,使得上述时间间隔低于第一时间阈值,从而操作***则会通过增大第一预设阈值和第二预设阈值之间的差值的方式,来增大操作***所管理的剩余内存的控制范围,减少内存回收进程被调用的次数。
在实施中,上述在调整第一预设阈值和/或第二预设阈值时,可以按照预先设定的步长来调整第一预设阈值和/或第二预设阈值;也可以分别按照当前第一预设阈值和第二预设阈值的预设百分比,来调整第一预设阈值和/或第二预设阈值。比如,当前第一预设阈值为80,预设百分比为10%,在减小第一预设阈值时,调整后的第一预设阈值可以表示为:80-80*10%=72。
为了更加准确的调整第一预设阈值和/或第二预设阈值,在实施中,在记录所述内存回收进程每次被调用时的时间之后,还可以记录内存回收进程每次被调用时的CPU负载,同时考虑时间间隔和CPU负载,来调整第一预设阈值和/或第二预设阈值。
在实施中,时间间隔小于第一时间阈值,但是CPU负载并不高,则可能是由于设置的第一时间阈值偏小,因此,可以不对第一预设阈值和第二预设阈值进行调整,而是将剩余内存维持在当前的大小;而时间间隔小于第一时间阈值,并且CPU负载较高,即CPU负载大于第一负载阈值时,则可以确定剩余内存不足,此时则可以通过减小第一预设阈值和/或增大第二预设阈值的方式,来增大操作***所管理的剩余内存的控制范围,减少内存回收进程被调用的次数。
相应的,在时间间隔大于第二时间阈值、且CPU负载较低,即CPU负载小于第二负载阈值的情况下,则表明剩余内存较大,存在内存资源浪费的现象,此时,则可以通过增大第一预设阈值和/或减小第二预设阈值的方式,来减小操作***做管理的剩余内存的控制范围。
上述第一负载阈值和第二负载阈值是由用户根据自身所需要的剩余内存量来预先设置的CPU负载阈值。比如,如果用户需要剩余内存量较大,可以设置一个较小的第一负载阈值,使得CPU负载易于低于第一负载阈值,从而增大第一预设阈值和第二预设阈值之间的差值,以此增大操作***所管理的剩余内存的控制范围,减少内存回收进程被调用的次数。
本发明提供的内存回收方法,通过预设接口用户能够根据自身的需求任意设置第一预设阈值和第二预设阈值,以实现将操作***的剩余内存控制在预设范围之内,防止出现操作***为应用程序分配内存时出现内存不足的情况。并且,实际控制剩余内存的过程中,可以根据内存回收进程被调用的频率和CPU负载来动态调整第一预设阈值和第二预设阈值,将剩余内存控制在合理的范围之内,从而在保证剩余内存的同时降低内存回收进程被调用的频率,进而降低CPU负载。
基于相同的技术构思,本发明实施例还提供了一种内存回收装置,如图4所示,所述装置包括:
监测模块400,用于监测剩余内存是否小于第一预设阈值,并在监测结果为是时触发回收模块410,其中,所述第一预设阈值为通过第一操作***配置接口获取的阈值;
所述回收模块410,用于对被占用的内存进行回收,直至剩余内存达到第二预设阈值,其中,所述第二预设阈值为通过第二操作***配置接口获取的阈值。
可选的,所述回收模块410,用于调用内存回收进程对被占用的内存进行回收。
可选的,所述装置还包括:
第一记录模块,用于记录所述内存回收进程每次被调用时的时间;
确定模块,用于根据所记录的时间,确定所述内存回收进程相邻两次被调用之间的时间间隔;
调整模块,用于根据所述时间间隔,调整所述第一预设阈值和/或所述第二预设阈值。
可选的,所述确定模块,用于
判断所述内存回收进程被调用的次数是否达到预设次数;
如果是,利用所记录的时间和所述预设次数,计算所述内存回收进程相邻两次被调用之间的平均时间间隔,作为所述时间间隔。
可选的,所述调整模块,用于
在所述时间间隔小于第一时间阈值的情况下,减小所述第一预设阈值和/或增大所述第二预设阈值;
在所述时间间隔大于第二时间阈值的情况下,增大所述第一预设阈值和/或减小所述第二预设阈值。
可选的,所述装置还包括:
第二记录模块,用于记录所述内存回收进程每次被调用时的CPU负载;
所述调整模块,还用于根据所述时间间隔和所述CPU负载,调整所述第一预设阈值和/或所述第二预设阈值。
可选的,所述调整模块,具体用于
在所述时间间隔小于第一时间阈值、且所述CPU负载大于第一负载阈值的情况下,减小所述第一预设阈值和/或增大所述第二预设阈值;
在所述时间间隔大于第二时间阈值、且所述CPU负载小于第二负载阈值的情况下,增大所述第一预设阈值和/或减小所述第二预设阈值。
本发明提供的内存回收装置,通过预设接口用户能够根据自身的需求任意设置第一预设阈值和第二预设阈值,以实现将操作***的剩余内存控制在预设范围之内,防止出现操作***为应用程序分配内存时出现内存不足的情况。并且,实际控制剩余内存的过程中,可以根据内存回收进程被调用的频率和CPU负载来动态调整第一预设阈值和第二预设阈值,将剩余内存控制在合理的范围之内,从而在保证剩余内存的同时降低内存回收进程被调用的频率,进而降低CPU负载。
需要说明的是:上述实施例提供的内存回收装置在回收内存时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的内存回收装置与内存回收方法的实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本发明实施例提供的一种计算机设备的结构示意图。该计算机设备器500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序552或数据565的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理服务器中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在数据处理计算机设备500上执行存储介质530中的一系列指令操作。
计算机设备500还可以包括一个或一个以上电源529,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,一个或一个以上键盘555,和/或,一个或一个以上操作***551,例如Windows Server,Mac OSX,Unix,Linux,FreeBSD等等。
计算机设备500可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述执行数据处理任务的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种内存回收方法,其特征在于,所述方法包括:
监测剩余内存是否小于第一预设阈值,其中,所述第一预设阈值为通过第一操作***配置接口获取的阈值;
如果是,调用内存回收进程对被占用的内存进行回收,直至剩余内存达到第二预设阈值,其中,所述第二预设阈值为通过第二操作***配置接口获取的阈值;
确定所述内存回收进程相邻两次被调用之间的时间间隔;
根据所述时间间隔,调整所述第一预设阈值和/或所述第二预设阈值。
2.如权利要求1所述的方法,其特征在于,所述确定所述内存回收进程相邻两次被调用之间的时间间隔,包括:
记录所述内存回收进程每次被调用时的时间;
根据所记录的时间,确定所述内存回收进程相邻两次被调用之间的时间间隔。
3.如权利要求2所述的方法,其特征在于,所述根据所记录的时间,确定所述内存回收进程相邻两次被调用之间的时间间隔的步骤,包括:
判断所述内存回收进程被调用的次数是否达到预设次数;
如果是,利用所记录的时间和所述预设次数,计算所述内存回收进程相邻两次被调用之间的平均时间间隔,作为所述时间间隔。
4.如权利要求2或3所述的方法,其特征在于,所述根据所述时间间隔,调整所述第一预设阈值和/或所述第二预设阈值的步骤,包括:
在所述时间间隔小于第一时间阈值的情况下,减小所述第一预设阈值和/或增大所述第二预设阈值;
在所述时间间隔大于第二时间阈值的情况下,增大所述第一预设阈值和/或减小所述第二预设阈值,其中,所述第二时间阈值大于所述第一时间阈值。
5.如权利要求2所述的方法,其特征在于,所述记录所述内存回收进程每次被调用时的时间的步骤之后,还包括:
记录所述内存回收进程每次被调用时的CPU负载;
所述根据所述时间间隔,调整所述第一预设阈值和/或所述第二预设阈值的步骤,包括:
根据所述时间间隔和所述CPU负载,调整所述第一预设阈值和/或所述第二预设阈值。
6.如权利要求5所述的方法,其特征在于,所述根据所述时间间隔和所述CPU负载,调整所述第一预设阈值和/或所述第二预设阈值的步骤,包括:
在所述时间间隔小于第一时间阈值、且所述CPU负载大于第一负载阈值的情况下,减小所述第一预设阈值和/或增大所述第二预设阈值;
在所述时间间隔大于第二时间阈值、且所述CPU负载小于第二负载阈值的情况下,增大所述第一预设阈值和/或减小所述第二预设阈值,其中,所述第二时间阈值大于所述第一时间阈值。
7.一种内存回收装置,其特征在于,所述装置包括:
监测模块,用于监测剩余内存是否小于第一预设阈值,并在监测结果为是时触发回收模块,其中,所述第一预设阈值为通过第一操作***配置接口获取的阈值;
所述回收模块,用于调用内存回收进程对被占用的内存进行回收,直至剩余内存达到第二预设阈值,其中,所述第二预设阈值为通过第二操作***配置接口获取的阈值;
确定模块,用于确定所述内存回收进程相邻两次被调用之间的时间间隔;
调整模块,用于根据所述时间间隔,调整所述第一预设阈值和/或所述第二预设阈值。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
第一记录模块,用于记录所述内存回收进程每次被调用时的时间;
所述确定模块,具体用于根据所记录的时间,确定所述内存回收进程相邻两次被调用之间的时间间隔。
9.如权利要求8所述的装置,其特征在于,所述确定模块,用于判断所述内存回收进程被调用的次数是否达到预设次数;
如果是,利用所记录的时间和所述预设次数,计算所述内存回收进程相邻两次被调用之间的平均时间间隔,作为所述时间间隔。
10.如权利要求8或9所述的装置,其特征在于,所述调整模块,用于在所述时间间隔小于第一时间阈值的情况下,减小所述第一预设阈值和/或增大所述第二预设阈值;
在所述时间间隔大于第二时间阈值的情况下,增大所述第一预设阈值和/或减小所述第二预设阈值,其中,所述第二时间阈值大于所述第一时间阈值。
11.如权利要求8所述的装置,其特征在于,所述装置还包括:
第二记录模块,用于记录所述内存回收进程每次被调用时的CPU负载;
所述调整模块,还用于根据所述时间间隔和所述CPU负载,调整所述第一预设阈值和/或所述第二预设阈值。
12.如权利要求11所述的装置,其特征在于,所述调整模块,具体用于在所述时间间隔小于第一时间阈值、且所述CPU负载大于第一负载阈值的情况下,减小所述第一预设阈值和/或增大所述第二预设阈值;
在所述时间间隔大于第二时间阈值、且所述CPU负载小于第二负载阈值的情况下,增大所述第一预设阈值和/或减小所述第二预设阈值,其中,所述第二时间阈值大于所述第一时间阈值。
13.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一项所述的内存回收方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910239140.7A CN111752851B (zh) | 2019-03-27 | 2019-03-27 | 一种内存回收方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910239140.7A CN111752851B (zh) | 2019-03-27 | 2019-03-27 | 一种内存回收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111752851A CN111752851A (zh) | 2020-10-09 |
CN111752851B true CN111752851B (zh) | 2023-08-18 |
Family
ID=72672391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910239140.7A Active CN111752851B (zh) | 2019-03-27 | 2019-03-27 | 一种内存回收方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752851B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0346039A2 (en) * | 1988-06-06 | 1989-12-13 | Demax Software, Inc | Dynamic load balancing for multi-user computers |
CN1991775A (zh) * | 2005-12-28 | 2007-07-04 | 英业达股份有限公司 | 存储***的高速缓存数据的保护方法 |
CN101833512A (zh) * | 2010-04-22 | 2010-09-15 | 中兴通讯股份有限公司 | 一种内存回收方法及其装置 |
CN102799471A (zh) * | 2012-05-25 | 2012-11-28 | 上海斐讯数据通信技术有限公司 | 操作***的进程回收方法及*** |
CN108228449A (zh) * | 2017-08-15 | 2018-06-29 | 珠海市魅族科技有限公司 | 终端设备控制方法及装置、终端设备及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN2015DE02783A (zh) * | 2015-09-04 | 2015-09-25 | Hcl Technologies Ltd |
-
2019
- 2019-03-27 CN CN201910239140.7A patent/CN111752851B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0346039A2 (en) * | 1988-06-06 | 1989-12-13 | Demax Software, Inc | Dynamic load balancing for multi-user computers |
CN1991775A (zh) * | 2005-12-28 | 2007-07-04 | 英业达股份有限公司 | 存储***的高速缓存数据的保护方法 |
CN101833512A (zh) * | 2010-04-22 | 2010-09-15 | 中兴通讯股份有限公司 | 一种内存回收方法及其装置 |
CN102799471A (zh) * | 2012-05-25 | 2012-11-28 | 上海斐讯数据通信技术有限公司 | 操作***的进程回收方法及*** |
CN108228449A (zh) * | 2017-08-15 | 2018-06-29 | 珠海市魅族科技有限公司 | 终端设备控制方法及装置、终端设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111752851A (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106579B2 (en) | System and method to manage and share managed runtime memory for java virtual machine | |
US10372604B2 (en) | Memory use for garbage collected computer environments | |
US9176869B2 (en) | Memory use for garbage collected computer environments | |
KR100289628B1 (ko) | 멀티태스킹 기능의 정보처리시스템을 위한 자원관리방법및 그 장치 | |
JP6370218B2 (ja) | メモリ管理方法、コンピュータシステム、コンピュータプログラム及び記憶媒体 | |
JP6138774B2 (ja) | コンピュータにより実行される方法及びコンピュータシステム | |
CN110895492B (zh) | 设备控制方法、装置、存储介质及电子设备 | |
KR20140033448A (ko) | 수정되지 않은 애플리케이션을 위한 메모리 관리 모델 및 인터페이스 | |
CN115495025B (zh) | 一种管理异常存储块的方法和装置 | |
US20120331235A1 (en) | Memory management apparatus, memory management method, control program, and recording medium | |
CN115407943A (zh) | 一种内存转储文件生成方法、装置、设备及可读存储介质 | |
CN111752851B (zh) | 一种内存回收方法及装置 | |
CN111090627B (zh) | 基于池化的日志存储方法、装置、计算机设备及存储介质 | |
CN109144708B (zh) | 电子计算装置及调整一内存回收函数的触发机制的方法 | |
CN112162864B (zh) | 一种云资源分配方法、装置及存储介质 | |
CN109086223B (zh) | 一种控制垃圾回收的方法和装置 | |
US9218275B2 (en) | Memory management control system, memory management control method, and storage medium storing memory management control program | |
CN112650693A (zh) | 一种静态内存管理方法及装置 | |
CN112463374A (zh) | 一种内存管理方法、装置、设备及存储介质 | |
CN112199042B (zh) | 存储空间管理方法、装置、芯片、设备及存储介质 | |
CN111858057B (zh) | 运行内存的分配方法、装置、计算机设备以及存储介质 | |
KR20240014742A (ko) | 성능 정보를 고려하는 메모리 관리 방법 및 장치 | |
CN114527932A (zh) | 存储器性能的提升方法、装置、终端设备以及存储介质 | |
CN118093150A (zh) | 内存管理方法、计算机设备及存储介质 | |
CN115857810A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |