【技术实现步骤摘要】
一种内存溢出管理方法、装置、电子设备及存储介质
本专利技术涉及计算机
,尤其涉及一种内存溢出管理方法、装置、电子设备及存储介质。
技术介绍
App(Application,应用程序)的运行稳定性是保障业务开发的前提,同时也是衡量一个App是否优秀的标准。同时App稳定性越高,用户体验也就更好,相对的用户量也就越高。用户量和日活的增加也就可以促进App的运营收入等以及其它一些隐形福利。所以保证App的稳定性是每一个公司都要面对的一个问题。App的不稳定因素包括内存使用过高,cpu消耗太大,电量消耗大,经常崩溃等,都会造成App被杀死,那么重新进入App需要走冷启动的流程。目前一般内存方面都是通过xcode中的instrument工具来检测内存的使用情况和内存泄漏,或者使用三方的sdk(SoftwareDevelopmentKit,软件开发工具包)进行检测。但是上述方式需要安装有相应的工具,有太多局限性。而且,没有一个工具化的手段分析App被杀死是因为内存造成的,也很难从源头预防出现OOM(outofmemory, ...
【技术保护点】
1.一种内存溢出管理方法,其特征在于,包括:/n获取目标设备中实时使用的内存空间数据,以及所述目标设备的内存上限,所述内存空间数据包括堆内存空间数据、虚拟内存空间数据中的至少一种;/n在所述内存空间数据与所述内存上限之间的距离小于预设数值的情况下,记录内存分配的堆栈信息,并且针对所述目标设备前台运行的应用程序设置内存溢出标识;/n针对设置有内存溢出标识的每个应用程序,根据所述内存分配的堆栈信息,对所述应用程序进行内存分析。/n
【技术特征摘要】
1.一种内存溢出管理方法,其特征在于,包括:
获取目标设备中实时使用的内存空间数据,以及所述目标设备的内存上限,所述内存空间数据包括堆内存空间数据、虚拟内存空间数据中的至少一种;
在所述内存空间数据与所述内存上限之间的距离小于预设数值的情况下,记录内存分配的堆栈信息,并且针对所述目标设备前台运行的应用程序设置内存溢出标识;
针对设置有内存溢出标识的每个应用程序,根据所述内存分配的堆栈信息,对所述应用程序进行内存分析。
2.根据权利要求1所述的方法,其特征在于,在所述针对设置有内存溢出标识的每个应用程序,根据所述内存分配的堆栈信息,对所述应用程序进行内存分析的步骤之前,还包括:
针对所述目标设备前台运行的应用程序,如果所述应用程序收到内存警告,记录内存分配的堆栈信息,并且针对所述应用程序设置内存溢出标识。
3.根据权利要求1或2所述的方法,其特征在于,所述记录内存分配的堆栈信息,并且针对所述目标设备前台运行的应用程序设置内存溢出标识的步骤,包括:
在所述目标设备本地为所述应用程序分配的存储空间中,记录内存分配的堆栈信息,并且针对所述应用程序设置内存溢出标识。
4.根据权利要求3中任一项所述的方法,其特征在于,所述针对设置有内存溢出标识的每个应用程序,根据所述内存分配的堆栈信息,对所述应用程序进行内存分析的步骤,包括:
针对设置有内存溢出标识的每个应用程序,如果所述应用程序被杀死,在所述应用程序再次冷启动时,从所述目标设备本地获取所述应用程序对应的的堆栈信息;
根据所述内存分配的堆栈信息,对所述应用程序进行内存分析。
5.根据权利要求1所述的方法,其特征在于,所述获取目标设备中实时使用的内存空间数据的步骤,包括:
通过hook技术获取所述目标设备中堆内存的分配方法和释放方法,并基于所述堆内存的分配方法和释放方法,获取所述堆内存空间数据;
和/或,通过hook技术获取所述目标设备中虚拟机内存的分配方法和释放方法,并基于所述虚拟机内存的分配方法和释放方法,获取所述虚拟内存空间数据。
6.一种内存溢出管理装置,其特征在于,包括:
内存分配监控模块,用于获取目标设备中实时使用的内存空间数据,以及所述目标设备的内存上限,所...
【专利技术属性】
技术研发人员:王盟盟,彭飞,邓竹立,
申请(专利权)人:五八有限公司,
类型:发明
国别省市:天津;12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。