内存管理方法、装置、终端及存储介质制造方法及图纸

技术编号:20944206 阅读:29 留言:0更新日期:2019-04-24 02:17
本发明专利技术实施例公开了一种内存管理方法、装置、终端及介质,其中方法包括:获取目标应用程序对应的目标进程的内存使用信息,所述内存使用信息包括所述目标应用程序的至少一个运行模块的内存占用信息;根据所述目标进程的内存使用信息预测所述目标应用程序是否存在内存不足的风险;若存在所述风险,则激活所述目标应用程序的预留应急内存,并回收所述目标应用程序的至少一个运行模块的已占用内存。本发明专利技术实施例可以对目标应用程序进行有效的内存管理,避免目标应用程序因内存不足的风险而导致崩溃退出等异常现象的产生,保证目标应用程序的正常运行。

Memory management methods, devices, terminals and storage media

The embodiment of the present invention discloses a memory management method, device, terminal and medium, in which the method includes: acquiring memory usage information of the target process corresponding to the target application program, the memory usage information includes memory occupancy information of at least one running module of the target application program, and predicting the target application program according to the memory usage information of the target process. Whether there is a risk of insufficient memory in the sequence; if there is such a risk, the reserved emergency memory of the target application is activated and the occupied memory of at least one of the running modules of the target application is recovered. The embodiment of the invention can effectively manage the memory of the target application program, avoid the occurrence of abnormal phenomena such as crash exit caused by the risk of insufficient memory of the target application program, and ensure the normal operation of the target application program.

【技术实现步骤摘要】
内存管理方法、装置、终端及存储介质
本专利技术涉及互联网
,具体涉及计算机
,尤其涉及一种内存管理方法、一种内存管理装置、一种终端及一种计算机存储介质。
技术介绍
内存是终端中重要的部件之一,它是与终端的CPU进行沟通的桥梁,终端中的所有应用程序都是在内存中进行的,因此内存性能对终端的影响非常大。然而,终端的内存容量是有限的,为了保证终端操作系统的正常运转,终端内的各应用程序被允许使用的内存量是有一定限制的。以浏览器应用程序为例:在浏览器应用程序被允许使用的内存量范围内,操作系统会响应浏览器应用程序中的各运行模块的申请为其分配内存以支持浏览器应用程序的运行;但如果浏览器应用程序中的各运行模块使用了过多内存,例如:由于申请过多内存导致内存过度分配,或者由于出现内存泄漏导致内存使用过度、或由于资源过度加载导致内存使用过多等等,这些均会导致浏览器应用程序出现内存不足的情况,通常会触发浏览器应用程序产生崩溃退出的现象。由此可见,要避免应用程序由于内存不足而影响运行的一个有效手段在于实施有效的内存管理,而如何实施有效的内存管理则是一个值得思考及研究的课题。
技术实现思路
本专利技术实施例提供了一种内存管理方法、装置、终端及终端存储介质,能够对目标应用程序进行有效地内存管理,避免目标应用程序因内存不足的风险而导致崩溃退出等异常现象的产生,保证目标应用程序的正常运行。一方面,本专利技术实施例提供了一种内存管理方法,所述内存管理方法包括:获取目标应用程序对应的目标进程的内存使用信息,所述内存使用信息包括所述目标应用程序的至少一个运行模块的内存占用信息;根据所述目标进程的内存使用信息预测所述目标应用程序是否存在内存不足的风险;若存在所述风险,则激活所述目标应用程序的预留应急内存,并回收所述目标应用程序的至少一个运行模块的已占用内存。另一方面,本专利技术实施例提供了一种内存管理装置,所述内存管理装置包括:获取单元,用于获取目标应用程序对应的目标进程的内存使用信息,所述内存使用信息包括所述目标应用程序的至少一个运行模块的内存占用信息;预测单元,用于根据所述目标进程的内存使用信息预测所述目标应用程序是否存在内存不足的风险;处理单元,用于若存在所述风险,则激活所述目标应用程序的预留应急内存,并回收所述目标应用程序的至少一个运行模块的已占用内存。再一方面,本专利技术实施例提供了一种终端,所述终端包括输入设备和输出设备,所述终端还包括:处理器,适于实现一条或一条以上指令;以及,计算机存储介质,所述计算机存储介质存储有一条或一条以上指令,所述一条或一条以上指令适于由所述处理器加载并执行如下步骤:获取目标应用程序对应的目标进程的内存使用信息,所述内存使用信息包括所述目标应用程序的至少一个运行模块的内存占用信息;根据所述目标进程的内存使用信息预测所述目标应用程序是否存在内存不足的风险;若存在所述风险,则激活所述目标应用程序的预留应急内存,并回收所述目标应用程序的至少一个运行模块的已占用内存。再一方面,本专利技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或一条以上指令,所述一条或一条以上指令适于由处理器加载并执行如下步骤:获取目标应用程序对应的目标进程的内存使用信息,所述内存使用信息包括所述目标应用程序的至少一个运行模块的内存占用信息;根据所述目标进程的内存使用信息预测所述目标应用程序是否存在内存不足的风险;若存在所述风险,则激活所述目标应用程序的预留应急内存,并回收所述目标应用程序的至少一个运行模块的已占用内存。本专利技术实施例中,通过目标应用程序对应的目标进程的内存使用信息预测目标应用程序是否存在内存不足的风险,若存在风险则可激活目标应用程序的预留应用内存,同时回收目标应用程序的至少一个运行模块的已占用内存。通过预测方式能够在目标应用程序实际发生内存不足的情况之前提前捕捉内存不足的风险,有利于针对该风险及时启动应急补救措施,这样的内存管理方式能够在一定程度上避免目标应用程序出现内存不足的情况,进而避免目标应用程序出现崩溃退出等异常现象,保证目标应用程序的正常运行。附图说明为了更清楚地说明本专利技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种操作系统的结构示意图;图2a是本专利技术实施例提供的一种内存管理方案的应用场景图;图2b是本专利技术实施例提供的一种内存分配的示意图;图3是本专利技术实施例提供的一种内存管理方法的流程示意图;图4是本专利技术实施例提供的一种内存管理方法的流程示意图;图5是本专利技术实施例提供的一种针对浏览器应用程序进行内存管理的流程示意图;图6是本专利技术实施例提供的一种浏览器客户端和开发机之间的交互示意图;图7是本专利技术实施例提供的一种内存管理装置的结构示意图;图8是本专利技术实施例提供的一种终端的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。本专利技术实施例提出一种内存管理方案,该内存管理方案可应用于终端中,以实现对终端中的目标应用程序进行内存管理,此处的终端可以包括但不限于:智能手机、台式电脑、笔记本电脑、膝上计算机,等等。终端中可以安装并运行多个应用程序,例如:即时通信应用程序、浏览器应用程序、音视频应用程序等等;本专利技术实施例所述的目标应用程序可以是终端中的任一应用程序,例如该目标应用程序可以是浏览器应用程序。该终端可包括处理器以及操作系统(OperatingSystem,OS),当然可以理解的是,除此之外,该终端还可以包含支持终端相应功能的其他硬件单元,例如:收发器以使终端能够正常收发射频信号;用户接口以使终端能够实现人机交互功能;存储器以使终端具备存储功能等等。其中,处理器是终端的处理核心,例如本实施例中处理器可用于对目标应用程序执行内存管理的一系列操作;操作系统是管理和控制终端硬件与软件资源的计算机程序,该操作系统可以包括但不限于:Android操作系统(安卓操作系统)、Linux操作系统、IOS操作系统、Windows操作系统(视窗操作系统),等等。除特别说明外,本专利技术后续实施例中所述的操作系统以安卓操作系统为例进行阐述,目标应用程序以浏览器应用程序为例进行阐述。如图1所示,终端的操作系统包括应用层及进程控制子系统。其中,应用层包括系统接口、函数库以及一个或多个应用程序等。通常,一个应用程序对应一个进程,所谓的进程是指终端中的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配和调度的基本单位,是操作系统结构的基础。其中,进程控制子系统包括进程单元及内存单元;进程单元用于对终端中的进程进行管理,包括但不限于:在检测到某个应用程序被启动时添加并管理该应用程序对应的进程;或者,允许并协调各进程间的通信;等等。内存单元用于对终端的内存进行管理,例如为某个应用程序分配相应的内存资源等等。目标应用程序可由一个或多个模块组成,例如,浏览器应用程序包括浏览器内核模块及浏览器客户端模块,其中,浏览器内核模块是浏览器内部实现网页浏览功能的核心模块,主要包括渲染引擎和JS引擎;浏览器客户端模块是本文档来自技高网...

【技术保护点】
1.一种内存管理方法,其特征在于,包括:获取目标应用程序对应的目标进程的内存使用信息,所述内存使用信息包括所述目标应用程序的至少一个运行模块的内存占用信息;根据所述目标进程的内存使用信息预测所述目标应用程序是否存在内存不足的风险;若存在所述风险,则激活所述目标应用程序的预留应急内存,并回收所述目标应用程序的至少一个运行模块的已占用内存。

【技术特征摘要】
1.一种内存管理方法,其特征在于,包括:获取目标应用程序对应的目标进程的内存使用信息,所述内存使用信息包括所述目标应用程序的至少一个运行模块的内存占用信息;根据所述目标进程的内存使用信息预测所述目标应用程序是否存在内存不足的风险;若存在所述风险,则激活所述目标应用程序的预留应急内存,并回收所述目标应用程序的至少一个运行模块的已占用内存。2.如权利要求1所述的方法,其特征在于,所述获取目标应用程序对应的目标进程的内存使用信息,包括:检测所述目标应用程序中的指定模块是否被调用;若所述指定模块被调用,则识别所述指定模块的调用场景,所述调用场景包括同进程调用场景或跨进程调用场景,所述同进程调用场景是指由所述目标应用程序中除所述指定模块之外的其他模块调用所述指定模块的场景;所述跨进程调用场景是指所述目标应用程序之外的其他应用程序调用所述指定模块的场景;获取所述同进程调用场景下所述目标进程的第一内存使用信息,或者,获取所述跨进程调用场景下所述目标进程的第二内存使用信息;其中,所述第一内存使用信息包括:所述指定模块的内存使用信息及所述其他模块的内存使用信息;所述第二内存使用信息包括:所述指定模块的内存使用信息。3.如权利要求2所述的方法,其特征在于,所述若所述指定模块被调用,则识别所述指定模块的调用场景,包括:获取针对所述目标应用程序中的所述指定模块的调用指令,所述调用指令携带场景配置信息;根据所述场景配置信息确定所述指定模块的调用场景。4.如权利要求2所述的方法,其特征在于,所述指定模块包括至少一个子模块;所述目标应用程序设有内存信息捕捉函数,所述内存信息捕捉函数用于记录所述至少一个子模块的内存使用信息;所述获取所述同进程调用场景下所述目标进程的第一内存使用信息,包括:根据所述内存信息捕捉函数记录的所述至少一个子模块的内存使用信息确定所述指定模块的内存使用信息;获取所述其他模块的函数调用栈,并根据所述其他模块的函数调用栈确定所述其他模块的内存使用信息。5.如权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:检测是否接收到预测内存不足的触发条件;若接收到所述触发条件,则执行根据所述目标进程的内存使用信息预测所述目标应用程序是否存在内存不足的风险的步骤;其中,所述触发条件包括:操作系统的当前时间与上一次预测内存不足的预测时间之间的间隔等于预设时间间隔,或者所述目标应用程序存在内存分配失败事件。6.如权利要求1-4任一项所述的方法,其特征在于,所述根据所述目标进程的内存使用信息预测所述目标应用程序是否存在内存不足的风险,包括:获取所述目标应用程序被允许使用的最大内存量,并根据所述目标进程的内存使用信息确定所述目标应用程序的已使用内存量;若所述已使用内存量和所述最大内存量之间的比值大于预设比值,则确定所述目标应用程序存在内存不足的风险。7.如权...

【专利技术属性】
技术研发人员:应玉龙
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1