[发明专利]内存处理方法、装置、电子设备及计算机可读存储介质有效
申请号: | 202010556023.6 | 申请日: | 2020-06-17 |
公开(公告)号: | CN111694673B | 公开(公告)日: | 2023-05-16 |
发明(设计)人: | 张翔 | 申请(专利权)人: | 抖音视界有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F11/14 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 郭曼 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 处理 方法 装置 电子设备 计算机 可读 存储 介质 | ||
1.一种内存处理方法,其特征在于,包括:
以预定频率检测应用程序当前占用内存是否达到预设内存占用阈值,所述预设内存占用阈值小于所述应用程序总内存;
若所述应用程序当前占用内存达到预设内存占用阈值,获取所述应用程序的内存快照,并重新启动所述应用程序;
将所述内存快照上传至服务器,以使服务器分析所述内存快照;或利用预设分析工具分析所述内存快照,并将所述分析结果上传至服务器;
所述利用预设分析工具分析所述内存快照,并将所述分析结果上传至服务器,包括:
利用预设分析工具获取所述内存快照中大对象的内部引用分布结果,并将所述大对象的内部引用分布结果上传至服务器;
其中,所述大对象包括所述内存快照每一类中的对象内存大小超过第一预设内存阈值的对象,所述大对象包括内部引用链路,通过所述内部引用链路确定第一引用大对象,以记录所述第一引用大对象的数据作为所述内部引用分布结果。
2.根据权利要求1所述的方法,其特征在于,所述若所述应用程序当前占用内存达到预设内存占用阈值,获取所述应用程序的内存快照,包括:
若所述应用程序当前占用内存达到预设内存占用阈值,创建子进程,并在所述子进程中调用预设函数获取所述应用程序的内存快照。
3.根据权利要求1所述的方法,其特征在于,所述在所述应用程序重新启动后,将所述内存快照上传至服务器,包括:
利用预设裁剪工具压缩所述内存快照,并将压缩后的内存快照上传至服务器。
4.根据权利要求1所述的方法,其特征在于,所述利用预设分析工具获取所述内存快照中大对象的内部引用分布结果,包括:
基于任一大对象的所述内部引用链路,获取所述任一大对象的所述第一引用大对象;
基于所述第一引用大对象的内存大小从大到小进行排序,将排序靠前的预设个数个第一引用大对象的内部引用链路、内存大小及数据类型确定为大对象的内部引用分布结果;
重复执行将引用第一引用大对象的引用大对象作为第一引用大对象,基于所述第一引用大对象的内存大小从大到小进行排序,将排序靠前的预设个数个第一引用大对象的内部引用链路、内存大小及数据类型确定为大对象的内部引用分布结果的步骤,直至重新执行达到预定次数。
5.根据权利要求1所述的方法,其特征在于,所述利用预设分析工具分析所述内存快照,并将所述分析结果上传至服务器,还包括:
利用预设分析工具获取所述内存快照中小对象的引用链路分布结果;
其中,所述小对象包括所述内存快照每一类中的对象数量超过第一预设数量的对象。
6.根据权利要求5所述的方法,其特征在于,所述获取所述内存快照中小对象的引用链路分布结果,包括:
基于预设节点划分每一类中的小对象,得到至少一个第一数组,记录所述至少一个第一数组的数据类型、小对象数量及内存大小作为小对象的引用链路分布结果;
重复执行基于所述预设节点的下级节点划分所述至少一个第一数组中的小对象,将得到的至少一个数组作为第一数组,记录所述第一数组的数据类型、小对象数量及内存总大小作为小对象引用链路分布结果的步骤,直至所述第一数组中包括的小对象数量小于第二预设数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于抖音视界有限公司,未经抖音视界有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010556023.6/1.html,转载请声明来源钻瓜专利网。