[发明专利]一种内存转储方法、装置及电子设备在审
申请号: | 202010388017.4 | 申请日: | 2020-05-09 |
公开(公告)号: | CN111638952A | 公开(公告)日: | 2020-09-08 |
发明(设计)人: | 李锐;薛秋实 | 申请(专利权)人: | 北京达佳互联信息技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 方法 装置 电子设备 | ||
本申请实施例提供一种内存转储方法、装置及电子设备,设计数据处理技术领域。该内存转储方法包括:调用主进程执行预设任务,并判断主进程是否满足内存转储条件。若主进程满足内存转储条件,则创建子进程,并调用子进程对主进程进行内存转储。提供一种内存转储方法,使得电子设备在进行内存转储的过程中,系统还可以正常工作。
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种内存转储方法、装置及电子设备。
背景技术
操作系统应用进程由于内存溢出崩溃后,将内存中的数据转储到存储设备中,以便相关技术人员事后问题定位。内存转储的之后生成的文件可以称为内存镜像。
以安卓系统为例,安卓系统提供了内存转储生成内存镜像的接口。也就是说,在安卓系统中,如果出现系统崩溃(或内存泄漏)可以通过内存转储接口实现内存转储。具体地说,系统崩溃后内存转储接口被调用,系统会暂时冻结内存中的所有线程,并生成内存镜像。其中,根据内存堆大小的不同,系统会冻结进程数秒甚至几分钟,冻结的时间长短取决于当前虚拟机堆占用大小的多少。如果冻结时间过长,冻结过程中不能正常工作,转储完成后才能恢复正常。
发明内容
本申请提供一种内存转储方法、装置及电子设备,使得电子设备在进行内存转储的过程中,系统还可以正常工作。
为实现上述技术目的,本申请实施例采用如下技术方案:
第一方面,本申请提供一种内存转储的方法,该方法可以包括:调用主进程执行预设任务,并判断主进程是否满足内存转储条件。若主进程满足内存转储条件,则创建子进程,并调用子进程对主进程进行内存转储。
可以理解的,当主进程满足内存转储条件,则系统可以对主进程进行内存转储。具体地说,系统确定主进程满足内存转储条件,系统为主进程创建子进程,并调用子进程对主进程进行内存转储。也就是说,系统可以为主进程创建出子进程,并通过子进程对主进程进行内存转储。这样一来,主进程在内存转储的过程中就不会被冻结,也就不会影响系统的正常工作。也就是说,在子进程中对主进程进行内存转储的过程中,主进程还可以继续运行,系统就不会出现卡顿的现象。
在一种可能的实施方式中,上述若主进程满足内存转储条件,则创建子进程,并调用子进程对主进程进行内存转储。具体实现中可以包括:若主进程满足内存转储条件,则暂停主进程执行预设任务。针对主进程采用写时复制技术,创建子进程,并调用子进程对主进程进行内存转储。
其中,将主进程暂停之后,采用写时复制技术是复制当前的主进程,可以保证子进程当前的进度与主进程当前的进度一致。因此,子进程可以将主进程占用的内存转储,以生成内存镜像。
另一种可能的实施方式中,上述若主进程满足内存转储条件,则创建子进程之后,该方法还可以包括:继续调用主进程执行预设任务。
也就是说,当子进程对主进程进行内存转储的过程中,主进程可以继续执行对应任务。这样,系统就不会出现卡顿的现象。
另一种可能的实施方式中,上述调用子进程对主进程进行内存转储之后,该方法还可以包括:主进程可以通过进程间通信监听子进程的状态;子进程完成内存转储,主进程可以监听到子进程的内存转储文件生成的信息。
另一种可能的实施方式中,主进程满足内存转储条件,包括:主进程占用的内存空间大于预设内存阈值、主进程运行时出现内存泄漏,以及,主进程运行时出现内存不足中的一种。
第二方面,本申请提供一种内存转储装置,该装置可以包括:判断模块和创建模块。判断模块,用于调用主进程执行预设任务,并判断主进程是否满足内存转储条件。创建模块,用于若主进程满足内存转储条件,则创建子进程,并调用子进程对主进程进行内存转储。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京达佳互联信息技术有限公司,未经北京达佳互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010388017.4/2.html,转载请声明来源钻瓜专利网。