CN108205475A - 内存管理方法、终端设备、计算机装置以及可读存储介质 - Google Patents
内存管理方法、终端设备、计算机装置以及可读存储介质 Download PDFInfo
- Publication number
- CN108205475A CN108205475A CN201710749536.7A CN201710749536A CN108205475A CN 108205475 A CN108205475 A CN 108205475A CN 201710749536 A CN201710749536 A CN 201710749536A CN 108205475 A CN108205475 A CN 108205475A
- Authority
- CN
- China
- Prior art keywords
- terminal device
- memory pages
- application
- memory
- target process
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种内存管理方法、终端设备、计算机装置以及可读存储介质,用于管理即将被释放的内存页面,保留部分重要的内存页面,减少占用该内存页面的进程对应的应用程序的热启动时间。本申请实施例方法包括:终端设备获取当前待释放的内存页面,所述终端设备确定所述内存页面存储的数据类型,若所述数据类型为数据段和/或代码段,并且占用所述内存页面的目标进程为活跃进程,则所述终端设备保留所述内存页面,所述活跃进程为预设的时间段内在所述终端设备上运行的进程。
Description
技术领域
本申请涉及计算机领域,特别涉及一种内存管理方法、终端设备、计算机装置以及可读存储介质。
背景技术
随着技术的发展,终端系统中越来越多的功能被开发,因此有越来越多的应用程序被使用,一个应用程序中可以包括多个进程,当一个应用程序使用后,若没有被主动清理,那么该应用程序的进程将在后台继续运行,若对后台运行的进程占用的内存不作限制,那么系统中将越来越多的后台进程运行,占用大量的内存资源后导致前台运行的进程在运行时将内存不足。
在现有方案中,当一个的进程被切换到后台运行后,在老化一定时长后,该老化可以包括运行一定时长后或占用一定量的内存后,该进程所占用的内存都会被释放掉,该占用内存包括该进程的代码段、堆、数据段以及用户栈,代码段与数据段都是在进程启动的过程中加载的,用户栈与堆都是在进程运行的过程中申请占用的。
因此,该进程的占用内存都释放后,当该进程再次从后台运行切换到前台运行时,该进程重新启动时将重新加载代码段与数据段,那么,进程启动的时长就会更长。
发明内容
本申请实施例提供了一种内存管理方法、终端设备、计算机装置以及可读存储介质,用于管理即将被释放的内存页面,保留部分重要的内存页面,减少占用该内存页面的进程对应的应用程序的热启动时间。
有鉴于此,本申请第一方面提供一种内存管理的方法,包括:
终端设备获取当前待释放的内存页面;
该终端设备确定该内存页面存储的数据类型;
若该数据类型为数据段和/或代码段,并且占用该内存页面的目标进程为活跃进程,则该终端设备保留该内存页面,该活跃进程为预设的时间段内在该终端设备上运行的进程。
可选地,该方法还包括:
该终端设备获取该目标进程对应的应用程序;
该终端设备判断该应用程序是否为活跃应用,该活跃应用为在该预设时间段内运行的应用;
若是,则该终端设备确定该目标进程为活跃进程。
可选地,该方法还包括:
若该应用程序与该活跃应用具有关联关系,则该终端设备确定该目标进程为活跃进程。
可选地,该方法还包括:
该终端设备获取该应用程序在预设的时长内的使用率;
若该使用率高于预置的使用率,则该终端设备确定该目标进程为活跃进程。
可选地,该方法还包括:
若该目标进程不为该活跃进程,则该终端设备释放该内存页面。
可选地,其特征在于,该方法还包括:
若该数据类型不为数据段与代码段,则该终端设备释放该内存页面。
本申请第二方面提供一种终端设备,包括:
获取单元,用于获取当前待释放的内存页面;
确定单元,用于获取该内存页面存储的数据类型;
保留单元,若该数据类型为数据段和/或代码段,并且占用该内存页面的目标进程为活跃进程,用于该终端设备保留该内存页面,该活跃进程为预设的时间段内在该终端设备上运行的进程。
可选地,该终端设备还包括:判断单元;
该获取单元,还用于获取该目标进程对应的应用程序;
该判断单元,用于判断该应用程序是否为活跃应用,该活跃应用为在该预设时间段内运行的应用;
该确定单元,若该判断单元的判断结果为是,还用于确定该目标进程为活跃进程。
可选地,
该确定单元,若该应用程序与该活跃应用具有关联关系,还用于确定该目标进程为活跃进程。
可选地,
该获取单元,还用于获取该应用程序在预设的时长内的使用率;
该确定单元,若该使用率高于预置的使用率,还用于确定该目标进程为活跃进程。
可选地,该终端设备还包括:
第一释放单元,若该目标进程不为该活跃进程,用于释放该内存页面。
可选地,该终端设备还包括:
第二释放单元,若该数据类型不为数据段与代码段,用于释放该内存页面。
本申请第三方面提供一种计算机装置,可以包括:
处理器、存储器、总线以及输入输出接口,该处理器、该存储器与该输入输出接口通过该总线连接;
该存储器,用于存储程序代码;
该处理器调用该存储器中的程序代码时执行本申请第一方面提供的内存管理方法的步骤。
本申请实施例第四方面提供一种存储介质,需要说明的是,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产口的形式体现出来,该计算机软件产品存储在一个存储介质中,用于储存为上述设备所用的计算机软件指令,其包含用于执行上述第一方面为终端设备所设计的程序。
该存储介质包括:U盘、移动硬盘、只读存储器(英文缩写ROM,英文全称:Read-OnlyMemory)、随机存取存储器(英文缩写:RAM,英文全称:Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例第五方面提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现上述第一方面中任意一项的内存管理的方法中的流程。
从以上技术方案可以看出,本申请实施例具有以下优点:
在本申请实施例中,终端设备获取当前待释放的内存页面,终端设备获取内存页面存储的数据类型,若内存页面存储的数据类型为数据段或代码段,并且占用内存页面的目标进程为活跃进程,则终端设备保留该内存页面,活跃进程为预设的时间段内在终端设备上运行的进程。当一个活跃进程从前台切换到后台运行时,一定时长后该进程的占用内存将被释放掉,在释放时,若当前待释放的内存页面存储的是代码段或数据段,则保留该内存页面,当该进程下次启动时,无需重新加载代码段与数据段,减少了该活跃进程的启动时间。
附图说明
图1为进程的内存分区示意图;
图2为本申请实施例中的内存管理方法的一个实施例示意图;
图3为本申请实施例中的内存管理方法的另一个实施例示意图;
图4为本申请实施例中的内存管理方法的另一个实施例示意图;
图5为本申请实施例中的终端设备的一个实施例示意图;
图6为本申请实施例中的终端设备的另一个实施例示意图;
图7为本申请实施例中终端设备的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种内存管理方法、终端设备、计算机装置以及可读存储介质,用于管理即将被释放的内存页面,保留部分重要的内存页面,减少占用该内存页面的进程对应的应用程序的热启动时间。
随着智能设备的普及,越来越多使用智能设备的用户,对于智能设备也有更多的功能逐渐被开发,更多丰富的应用可以在智能设备上运行,一个应用可以包含多个进程,而随着智能设备上运行的应用越多,占用的内存也就更多,当应用从前台切换到后台时,该应用的进程将在后台继续运行,那么,随着在后台运行的进程越来越多,占用的内存也越来越多,对于该问题的解决方案是,当在后台运行的进程老化到一定程度后(包括运行的时间过长或占用的内存过大等),智能设备系统将进行清理,将该老化到一定程度的进程关闭,释放该进程占用的内存。进程的占用内存可以进行分区,包括代码段、用户栈、数据段以及堆,如图1所示,将一个进程所占用的内存在虚拟内存中的分为多个区域,包括代码段、用户栈、数据段、堆以及其他数据,代码段存储了该进程运行所需的代码,为该进程启动时被加载,用户栈为该进程运行时使用的,数据段也是在该进程启动时加载的,堆是在该进程运行时请求的内存,用于存储该进程运行时的变量或由进程内的算法产生的数据等,其他数据可以包括占用的一些未使用的数据。
下面对本申请实施例中的内存管理的方法进行说明,请参阅图2,本申请实施例中的内存管理方法的一个实施例示意图,包括:
201、终端设备获取当前待释放的内存页面;
当一个内存页面对应的目标进程老化到一定程度后,该内存页面即将被释放,终端设备在释放之前获取该内存页面,该老化到一定程度可以是该目标进程运行的时间达到预设的时间,也可以是该目标进程的占用内存达到预设的阈值,具体此处不作限定。
202、终端设备确定内存页面存储的数据类型;
终端设备获取该内存页面后,首先获取该内存页面存储的数据类型,即该内存页面属于目标进程的区域类型,或该内存页面包含了该目标进程的多个区域类型,该区域类型包括数据段、代码段、堆以及用户栈。
203、若数据类型为数据段和/或代码段,并且占用内存页面的目标进程为活跃进程,则终端设备保留内存页面。
若该内存页面对应的数据类型为数据段或代码段中的至少一个,并且占用该内存页面的目标进程为活跃进程,该活跃进程包括预设时段内在终端上运行的进程,那么终端设备保留该内存页面。
在本申请实施例中,首先获取当前等待释放的内存页面,获取该内存页面存储的数据类型,该数据类型包括数据段、代码段、堆以及用户栈中的一个或多个,若该数据类型为数据段和/或代码段,并且占用该内存页面的目标进程为活跃进程,那么终端设备保留该内存页面,该活跃进程为预设时间段内在终端设备上运行的进程,例如,该活跃进程为当前时间之前的10分钟内运行的进程,因此,当目标进程再次被启动时,无需重新加载该目标进程的代码段以及数据段,减少了该目标进程的启动时间。
下面对本申请实施例中的内存管理的方法进行具体说明,请参阅图3,本申请实施例中的内存管理方法的另一个实施例示意图,包括:
301、终端设备获取当前待释放的内存页面;
302、终端设备确定内存页面存储的数据类型;
本申请实施例中的步骤301与步骤302与前述图2中的步骤201与步骤202类似,具体此处不再赘述。
303、终端设备判断数据类型是否为数据段和/或代码段,若是,则执行步骤304,若否,则执行步骤309;
终端设备获取该内存页面的数据类型后,判断该数据类型是否为数据段和/或代码段,若是,则执行步骤304,若否,则执行步骤310。
304、终端设备获取目标进程对应的应用程序;
终端设备首先获取占用该内存页面的目标进程,然后获取该进程对应的应用程序,即该目标进程为该应用程序的进程。
305、终端设备判断应用程序是否为活跃应用,若是,则执行步骤307,若否,则执行步骤306;
终端设备判断该应用程序是否属于活跃应用,若是,则执行步骤307,若否,则执行步骤306,该活跃应用为终端设备在预设的时间段内运行过的应用程序,再次被打开的几率较大,例如,终端设备在当前时间的前一小时运行过的5个应用,或终端设备在当前时间的前10分钟内运行过的2个应用,具体不作限定。
306、终端设备判断应用程序是否与活跃应用具有关联关系,若是,则执行步骤307,若否,则执行步骤309;
若目标进程对应的应用程序不属于活跃应用,那么,判断该应用程序是否与该活跃应用具有关联关系,该关联关系可以由终端设定,也可以由终端根据应用程序的关联启动的次数确定,该关联启动可以是,由活跃应用打开该应用程序,或该应用程序打开该活跃应用,具体此处不做限定,例如,购物应用与支付应用,购物应用可以启动支付应用,或通信应用与图像应用,通信应用可以打开图像应用,具体此处不作限定。
需要说明的是,本申请实施例对步骤305以及步骤306的执行顺序不作限定,可以先执行步骤305,也可以先执行步骤306,还可以同时执行步骤305与步骤306,具体此处不作限定,若先执行步骤306,则当步骤306的判断结果为否时,可以执行步骤305,当步骤306的判断结果为是时,可以执行步骤306,也可以不执行步骤306,具体此处不作限定。
307、终端设备确定目标进程为活跃进程;
若目标进程对应的应用程序为活跃应用,或与该活跃应用具有关联关系,终端设备确定该目标进程为活跃进程。
308、终端设备保留内存页面;
若占用该内存页面的目标进程为活跃进程,那么终端可以不释放该内存页面,即保留该内存页面。
309、终端设备确定目标进程为非活跃进程;
若目标进程不属于活跃应用,也与活跃应用不具有关联关系,则终端设备确定该目标进程为非活跃进程,即不为活跃进程。
需要说明的是,本申请实施例对步骤303与步骤309的执行顺序不作限定,可以先执行步骤303,也可以先执行步骤309,还可以同时执行步骤303与步骤309,具体此处不作限定。
310、终端设备释放内存页面。
占用该内存页面的目标进程为非活跃进程,或该内存页面存储的数据类型不为数据段以及代码段,则终端设备释放该内存页面。
在本申请实施例中,若当前待释放的内存页面存储的数据类型为数据段和/或代码段,以及占用该内存页面的目标进程为活跃进程,则终端设备保留该内存页面,否则释放该内存页面,判断目标进程是否为活跃进程可以是,判断目标进程是否为活跃应用,该活跃应用为预设时间段内启动过的应用,或与活跃应用具有关联关系的应用,例如,当前时间之前的10分钟内启动过的应用,或与该当前时间之前的10分钟内启动过的应用相关联的应用,可以保留占用进程为活跃进程以及数据类型为数据段和/或代码段的内存页面,可以减少活跃进程的热启动时间。
在具体实施场景中,若用户在手机上运行了一个购物软件A,该用户使用该购物软件A进行购物,购物完成后需要进行付款,购物软件A金融与软件B具有关联关系,此时,用户通过购物软件A打开另外一个金融软件B进行付款,购物软件A被切换到后台继续运行,该用户在使用金融软件进行支付时,遇到了问题需要等待三个小时后才能付款,该购物软件A在三个小时将被老化掉,手机将释放掉该购物软件A使用的内存,该释放过程可以是以一个内存页面为单位的释放过程,该通信软件A在三个小时前运行过,因此手机确定该购物软件A的进程为活跃进程,在进行内存释放时,保留该进程的数据类型为数据段和/或代码段的内存页面,用户在完成付款后重新打开该购物软件A时,可以减少该购物软件A的启动时间,此时,金融软件B将切换到后台运行,用户在使用购物软件A的4个小时后切换到后台运行,金融软件B满足被老化条件,此时,购物软件A为活跃应用,金融软件B与购物软件A具有关联关系,因此保留金融软件B进程的数据类型为数据段和/或代码段的内存页面,减少金融软件B的启动时间。
请参阅图4,本申请实施例中的内存管理方法的另一个实施例示意图,包括:
401、终端设备获取当前待释放的内存页面;
402、终端设备确定内存页面存储的数据类型;
403、终端设备判断数据类型是否为数据段和/或代码段,若是,则执行步骤404,若否,则执行步骤411;
404、终端设备获取目标进程对应的应用程序;
405、终端设备判断应用程序是否为活跃应用,若是,则执行步骤408,若否,则执行步骤406;
406、终端设备判断应用程序是否与活跃应用具有关联关系,若是,则执行步骤408,若否,则执行步骤407;
本申请实施例中的步骤401至步骤406与前述图3中的步骤301至步骤306类似,具体此处不再赘述。
407、终端设备判断应用程序在预设的时长内的使用率是否满足预置的使用率,若是,则执行步骤408,若否,则执行步骤410;
终端设备判断目标进程对应的应用程序在预置的时长内的使用率是否满足预置的使用率,若是,则执行步骤408,若否,则执行步骤410,该使用率可以是该应用程序在预设的时长内运行的次数和/或时长,例如,该应用程序在一天内运行的次数和/或时长。
需要说明的是,本申请实施例对步骤405、步骤406以及步骤407的执行顺序不作限定,可以先执行步骤405,也可以先执行步骤406,还可以先执行步骤407,具体此处不作限定。若先执行步骤406,则当步骤406的判断结果为否时,可以先执行步骤407,然后执行步骤405或步骤407的判断结果为是时不执行步骤405,也可以先执行步骤405,然后执行步骤407或步骤405的判断结果为是时不执行步骤407,当步骤406的判断结果为是时,还可以不执行步骤407与步骤405;若先执行步骤407,则当步骤407的判断结果为否时,可以先执行步骤406,然后执行步骤405,也可以先执行步骤405,然后执行步骤406,当步骤407的判断结果为是时,还可以不执行步骤405与步骤406,具体此处不作限定。
即本申请实施例对步骤405、步骤406以及步骤407的执行顺序不作限定,若先执行步骤405、步骤406或步骤407中任意一个步骤的判断结果为是时,可以不执行其他步骤,也可以执行其他步骤,例如,若先执行步骤406,判断结果为是时,则可以不执行步骤405以及步骤407,若先执行步骤407,判断结果为是时,则可以不执行步骤405以及步骤406,具体此处不作限定。
408、终端设备确定目标进程为活跃进程;
409、终端设备保留内存页面;
410、终端设备确定目标进程为非活跃进程;
411、终端设备释放内存页面。
本申请实施例中的步骤408至步骤411与前述图3中的步骤307至步骤310类似,具体此处不再赘述。
在本申请实施例中,若当前待释放的内存页面存储的数据类型为数据段和/或代码段,以及占用该内存页面的目标进程为活跃进程,则终端设备保留该内存页面,否则释放该内存页面,判断目标进程是否为活跃进程可以是,判断目标进程是否为活跃应用,该活跃应用为预设时间段内启动过的应用,与活跃应用具有关联关系的应用,或在预设的时长内使用率高于预置使用率的应用,例如,当前时间之前的10分钟内启动过的应用,与该当前时间之前的10分钟内启动过的应用相关联的应用,或当前时间之前的24小时内启动次数大于10次和/或运行时长大于2个小时的应用,可以保留占用进程为活跃进程以及数据类型为数据段和/或代码段的内存页面,可以减少活跃进程的热启动时间。
在具体实施场景中,若用户一天内在手机上启动一个通信应用A大于10次,那么,当手机2个小时内未运行该通信应用A,该通信应用A的进程占用的内存将被老化,该通信应用A在24小时内启动的次数大于10次,因此将保留该通信应用A的代码段以及数据段,可以减少该通信应用A启动的时间,提高效率。
前述对本申请实施例中的内存管理方法进行了详细说明,下面对本申请的终端设备进行说明,请参阅图5,本申请实施例中的终端设备的一个实施例示意图,包括:获取单元501,确定单元502以及保留单元503;
获取单元501,用于获取当前待释放的内存页面;
确定单元502,用于获取所述内存页面存储的数据类型;
保留单元503,若所述数据类型为数据段和/或代码段,并且占用所述内存页面的目标进程为活跃进程,用于所述终端设备保留所述内存页面,所述活跃进程为预设的时间段内在所述终端设备上运行的进程。
请参阅图6,本申请实施例中的终端设备的另一个实施例示意图,包括:
获取单元601,确定单元602,保留单元603,判断单元604,第一释放单元605以及第二释放单元606;
本申请实施例中获取单元601,确定单元602以及保留单元603的功能与前述图5中的获取单元501,确定单元502以及保留单元503功能类似,具体此处不做赘述。
可选地,在本申请的一些实施例中,
所述获取单元601,还用于获取所述目标进程对应的应用程序;
所述判断单元604,用于判断所述应用程序是否为活跃应用,所述活跃应用为在所述预设时间段内运行的应用;
所述确定单元602,若所述判断单元的判断结果为是,还用于确定所述目标进程为活跃进程。
可选地,在本申请的一些实施例中,
所述确定单元602,若所述应用程序与所述活跃应用具有关联关系,还用于确定所述目标进程为活跃进程。
可选地,在本申请的一些实施例中,
所述获取单元601,还用于获取所述目标价进程对应的应用程序在预设时长内的使用率;
所述确定单元602,若所述使用率高于预置的使用率,还用于确定所述目标进程为活跃进程。
可选地,在本申请的一些实施例中,
所述第一释放单元605,若所述目标进程不为所述活跃进程,用于释放所述内存页面。
可选地,在本申请的一些实施例中,
所述第二释放单元606,若所述数据类型不为数据段与代码段,用于释放所述内存页面。
图7是本申请实施例中终端设备的另一个实施例示意图,该终端设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对终端设备中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在终端设备700上执行存储介质730中的一系列指令操作。
终端设备700还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,和/或,一个或一个以上操作系统741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由终端设备所执行的步骤可以基于该图7所示的终端设备结构。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请图2至图5中各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种内存管理的方法,其特征在于,包括:
终端设备获取当前待释放的内存页面;
所述终端设备确定所述内存页面存储的数据类型;
若所述数据类型为数据段和/或代码段,并且占用所述内存页面的目标进程为活跃进程,则所述终端设备保留所述内存页面,所述活跃进程为预设的时间段内在所述终端设备上运行的进程。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述终端设备获取所述目标进程对应的应用程序;
所述终端设备判断所述应用程序是否为活跃应用,所述活跃应用为在所述预设时间段内运行的应用;
若是,则所述终端设备确定所述目标进程为活跃进程。
3.根据权利要求2所述的方法,所述方法还包括:
若所述应用程序与所述活跃应用具有关联关系,则所述终端设备确定所述目标进程为活跃进程。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述终端设备获取所述目标进程对应的应用程序在预设时长内的使用率;
若所述使用率高于预置的使用率,则所述终端设备确定所述目标进程为活跃进程。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
若所述目标进程不为所述活跃进程,则所述终端设备释放所述内存页面。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
若所述数据类型不为数据段与代码段,则所述终端设备释放所述内存页面。
7.一种终端设备,其特征在于,包括:
获取单元,用于获取当前待释放的内存页面;
确定单元,用于获取所述内存页面存储的数据类型;
保留单元,若所述数据类型为数据段和/或代码段,并且占用所述内存页面的目标进程为活跃进程,用于所述终端设备保留所述内存页面,所述活跃进程为预设的时间段内在所述终端设备上运行的进程。
8.根据权利要求7所述的终端设备,其特征在于,所述终端设备还包括:判断单元;
所述获取单元,还用于获取所述目标进程对应的应用程序;
所述判断单元,用于判断所述应用程序是否为活跃应用,所述活跃应用为在所述预设时间段内运行的应用;
所述确定单元,若所述判断单元的判断结果为是,还用于确定所述目标进程为活跃进程。
9.一种计算机装置,其特征在于,包括:
处理器、存储器、总线以及输入输出接口;
所述存储器中存储有程序代码;
所述处理器调用所述存储器中的程序代码时执行权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710749536.7A CN108205475A (zh) | 2017-08-25 | 2017-08-25 | 内存管理方法、终端设备、计算机装置以及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710749536.7A CN108205475A (zh) | 2017-08-25 | 2017-08-25 | 内存管理方法、终端设备、计算机装置以及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108205475A true CN108205475A (zh) | 2018-06-26 |
Family
ID=62603591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710749536.7A Pending CN108205475A (zh) | 2017-08-25 | 2017-08-25 | 内存管理方法、终端设备、计算机装置以及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108205475A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871280A (zh) * | 2019-03-18 | 2019-06-11 | 北京智明星通科技股份有限公司 | 后台进程管理方法及装置 |
WO2020211791A1 (zh) * | 2019-04-15 | 2020-10-22 | 深圳市万普拉斯科技有限公司 | 匿名页面管理方法、装置、终端设备及可读存储介质 |
CN111858393A (zh) * | 2020-07-13 | 2020-10-30 | Oppo(重庆)智能科技有限公司 | 内存页面管理方法、内存页面管理装置、介质与电子设备 |
CN112052089A (zh) * | 2020-09-01 | 2020-12-08 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置以及电子设备 |
CN112069433A (zh) * | 2020-09-10 | 2020-12-11 | Oppo(重庆)智能科技有限公司 | 文件页面处理方法、装置、终端设备以及存储介质 |
CN112148547A (zh) * | 2019-06-26 | 2020-12-29 | 北京百度网讯科技有限公司 | 应用启动次数的监控方法、装置、设备及可读存储介质 |
CN113434222A (zh) * | 2021-06-30 | 2021-09-24 | 青岛海尔科技有限公司 | 应用程序的控制方法、装置、存储介质及电子装置 |
CN115757193A (zh) * | 2019-11-15 | 2023-03-07 | 荣耀终端有限公司 | 一种内存的管理方法及电子设备 |
WO2024032430A1 (zh) * | 2022-08-09 | 2024-02-15 | 华为技术有限公司 | 管理内存的方法和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447829B2 (en) * | 2003-10-15 | 2008-11-04 | International Business Machines Corporation | Heap and stack layout for multithreaded processes in a processing system |
CN103455438A (zh) * | 2013-07-30 | 2013-12-18 | 华为技术有限公司 | 一种内存管理方法及设备 |
CN104598315A (zh) * | 2014-12-12 | 2015-05-06 | 广州三星通信技术研究有限公司 | 管理内存的方法、装置及终端 |
US20160291977A1 (en) * | 2015-03-30 | 2016-10-06 | International Business Machines Corporation | Adaptive map-reduce pipeline with dynamic thread allocations |
CN106484472A (zh) * | 2016-09-29 | 2017-03-08 | 华为技术有限公司 | 一种内存回收方法及终端 |
-
2017
- 2017-08-25 CN CN201710749536.7A patent/CN108205475A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447829B2 (en) * | 2003-10-15 | 2008-11-04 | International Business Machines Corporation | Heap and stack layout for multithreaded processes in a processing system |
CN103455438A (zh) * | 2013-07-30 | 2013-12-18 | 华为技术有限公司 | 一种内存管理方法及设备 |
CN104598315A (zh) * | 2014-12-12 | 2015-05-06 | 广州三星通信技术研究有限公司 | 管理内存的方法、装置及终端 |
US20160291977A1 (en) * | 2015-03-30 | 2016-10-06 | International Business Machines Corporation | Adaptive map-reduce pipeline with dynamic thread allocations |
CN106484472A (zh) * | 2016-09-29 | 2017-03-08 | 华为技术有限公司 | 一种内存回收方法及终端 |
Non-Patent Citations (1)
Title |
---|
TOLIMIT: "linux内存源码分析-内存回收(lru链表)", 《HTTP://WWW.CNBLOGS.COM/TOLIMIT》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871280A (zh) * | 2019-03-18 | 2019-06-11 | 北京智明星通科技股份有限公司 | 后台进程管理方法及装置 |
WO2020211791A1 (zh) * | 2019-04-15 | 2020-10-22 | 深圳市万普拉斯科技有限公司 | 匿名页面管理方法、装置、终端设备及可读存储介质 |
CN112148547B (zh) * | 2019-06-26 | 2024-04-02 | 北京百度网讯科技有限公司 | 应用启动次数的监控方法、装置、设备及可读存储介质 |
CN112148547A (zh) * | 2019-06-26 | 2020-12-29 | 北京百度网讯科技有限公司 | 应用启动次数的监控方法、装置、设备及可读存储介质 |
CN115757193B (zh) * | 2019-11-15 | 2023-11-03 | 荣耀终端有限公司 | 一种内存的管理方法及电子设备 |
CN115757193A (zh) * | 2019-11-15 | 2023-03-07 | 荣耀终端有限公司 | 一种内存的管理方法及电子设备 |
CN111858393B (zh) * | 2020-07-13 | 2023-06-02 | Oppo(重庆)智能科技有限公司 | 内存页面管理方法、内存页面管理装置、介质与电子设备 |
CN111858393A (zh) * | 2020-07-13 | 2020-10-30 | Oppo(重庆)智能科技有限公司 | 内存页面管理方法、内存页面管理装置、介质与电子设备 |
CN112052089A (zh) * | 2020-09-01 | 2020-12-08 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置以及电子设备 |
CN112052089B (zh) * | 2020-09-01 | 2023-03-28 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置以及电子设备 |
CN112069433A (zh) * | 2020-09-10 | 2020-12-11 | Oppo(重庆)智能科技有限公司 | 文件页面处理方法、装置、终端设备以及存储介质 |
CN113434222B (zh) * | 2021-06-30 | 2023-06-09 | 青岛海尔科技有限公司 | 应用程序的控制方法、装置、存储介质及电子装置 |
CN113434222A (zh) * | 2021-06-30 | 2021-09-24 | 青岛海尔科技有限公司 | 应用程序的控制方法、装置、存储介质及电子装置 |
WO2024032430A1 (zh) * | 2022-08-09 | 2024-02-15 | 华为技术有限公司 | 管理内存的方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108205475A (zh) | 内存管理方法、终端设备、计算机装置以及可读存储介质 | |
CN103810020B (zh) | 虚拟机弹性伸缩方法及装置 | |
TWI533205B (zh) | 應用程式存留期管理 | |
CN105094936B (zh) | 应用于移动终端的后台应用程序清理方法和装置 | |
CN106293924B (zh) | 安卓系统的内存管理方法及装置 | |
CN106547612A (zh) | 一种多任务处理方法及装置 | |
EP3537281B1 (en) | Storage controller and io request processing method | |
CN110532086B (zh) | 资源复用方法、设备、系统及存储介质 | |
CN108205474A (zh) | 内存管理方法、终端设备、计算机装置以及可读存储介质 | |
CN107656813A (zh) | 一种负载调度的方法、装置及终端 | |
CN105574141B (zh) | 一种对数据库进行数据迁移的方法和装置 | |
CN104539708A (zh) | 一种云平台资源的缩容方法、装置与系统 | |
CN101799772B (zh) | 内核调度方法、内核备份方法和多核处理器 | |
CN107273182A (zh) | 一种虚拟机资源动态扩充方法及系统 | |
CN112486642B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN101894049A (zh) | 一种自适应回收垃圾对象的系统及方法 | |
CN106293805A (zh) | 程序加载的方法及装置 | |
CN108205472A (zh) | 内存释放方法、释放装置、计算机装置以及可读存储介质 | |
CN108762669A (zh) | 提升掉电时数据写入速度的方法、装置及计算机设备 | |
CN103677893B (zh) | 开机的映像文件的大小缩减方法及运算装置 | |
CN110109865A (zh) | 一种数据存储方法、装置、设备及可读存储介质 | |
CN111522659A (zh) | 一种空间使用方法和装置 | |
TWI465889B (zh) | 休眠管理方法及相關裝置 | |
CN106844605A (zh) | 批量数据逻辑处理方法及装置 | |
CN102445978B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180626 |
|
RJ01 | Rejection of invention patent application after publication |