【技术实现步骤摘要】
监控方法、监控装置、监控设备和存储介质
本专利技术涉及计算机
,更具体的说是涉及监控方法、监控装置、监控设备和存储介质。
技术介绍
僵尸(Zombie)对象可指已经释放的Objective-C对象。应用程序(例如移动APP)在运行过程中,使用Zombie对象会导致程序崩溃(Crash)或者逻辑错误,此时,会产生崩溃日志(Crashlog)。但Crashlog包含的信息少,并远离内存释放现场,因此,很难通过Crashlog发现和定位使用Zombie对象的问题。
技术实现思路
有鉴于此,本专利技术实施例提供监控方法、监控装置、监控设备和存储介质,以主动发现使用Zombie对象的问题,并收集与内存释放现场相关的信息。为实现上述目的,本专利技术实施例提供如下技术方案:一种监控方法,包括:释放目标对象持有的资源;其中,所述目标对象为需释放的对象,并且所述目标对象需被监控;记录所述目标对象的对象信息和释放栈信息,并保留所述目标对象占用的内存;所述释放栈信息表征了所述目标对象的释放路径;若拦截到向所述目标对象发送的调用消息,上报所述目标对象的相关信息,所述相关信息至少包括所述 ...
【技术保护点】
一种监控方法,其特征在于,包括:释放目标对象持有的资源;其中,所述目标对象为需释放的对象,并且所述目标对象需被监控;记录所述目标对象的对象信息和释放栈信息,并保留所述目标对象占用的内存;所述释放栈信息表征了所述目标对象的释放路径;若拦截到向所述目标对象发送的调用消息,上报所述目标对象的相关信息,所述相关信息至少包括所述对象信息和所述释放栈信息。
【技术特征摘要】
1.一种监控方法,其特征在于,包括:释放目标对象持有的资源;其中,所述目标对象为需释放的对象,并且所述目标对象需被监控;记录所述目标对象的对象信息和释放栈信息,并保留所述目标对象占用的内存;所述释放栈信息表征了所述目标对象的释放路径;若拦截到向所述目标对象发送的调用消息,上报所述目标对象的相关信息,所述相关信息至少包括所述对象信息和所述释放栈信息。2.如权利要求1所述的方法,其特征在于,在对所述目标对象执行延迟释放策略之前,还包括:判断需释放的对象是否满足监控条件;如满足,确定所述需释放的对象为目标对象。3.如权利要求1所述的方法,其特征在于,若拦截到向所述目标对象发送的调用消息,还包括:获取所述目标对象的调用栈信息;所述调用栈信息表征了所述目标对象的调用路径;所述相关信息还包括所述调用栈信息。4.如权利要求1所述的方法,其特征在于,在所述记录所述目标对象的对象信息和释放栈信息,并保留所述目标对象占用的内存之后,还包括:将所述目标对象的isa指针更改为指向拦截类;所述拦截类至少用于实现拦截向所述目标对象发送的调用消息,以及,若拦截到向所述目标对象发送的调用消息,上报所述目标对象的相关信息。5.如权利要求1-4任一项所述的方法,其特征在于,还包括:将所述目标对象放入延迟释放队列,所述延迟释放队列中包括至少一个需监控的对象。6.如权利要求5所述的方法,其特征在于,还包括:在满足内存释放条件时,释放所述延迟释放队列中全部或部分对象占用的内存。7.如权利要求6所述的方法,其特征在于,所述内存释放条件包括:所述延迟释放队列已满和系统内存不足中的至少一种。8.如权利要求1-4任一项所述的方法,其特征在于,所述相关信息还包括:所述调用消息对应的方...
【专利技术属性】
技术研发人员:丁海盛,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。