本发明专利技术实施例提供了一种应用程序异常原因的确定方法、装置及电子设备,所述方法包括:监控所述应用程序是否出现异常;在监控到所述应用程序出现异常时,从所述调用堆栈中导出至少一条调用堆栈信息,以及获取至少一条资源占用信息;根据所述调用堆栈信息确定导致所述应用程序出现异常的目标函数,并将所述目标函数确定为导致所述应用程序出现异常的异常原因,以及,在根据所述调用堆栈信息无法确定导致所述应用程序出现异常的目标函数或者无法导出所述调用堆栈信息时,根据所述资源占用信息确定导致所述应用程序出现异常的异常原因。本发明专利技术实施例可以全面、准确地确定导致应用程序出现异常的异常原因。现异常的异常原因。现异常的异常原因。
【技术实现步骤摘要】
应用程序异常原因的确定方法、装置及电子设备
[0001]本专利技术实施例涉及计算机
,特别是涉及一种应用程序异常原因的确定方法、一种应用程序异常原因的确定装置、一种电子设备以及一种计算机可读存储介质。
技术介绍
[0002]随着科学技术的飞速发展,越来越多的用户使用应用程序(App,Application)进行互联网交互活动。在具体实现中若应用程序出现异常,例如应用程序启动时可能发生卡顿现象,甚至用户等待了8秒甚至更长时间后直接发生卡死现象,对用户影响非常大,可能会降低应用程序的用户留存率,因此,需要不断对应用程序进行优化,从而为用户提供更好的使用体验。
[0003]因此,在应用程序的运行过程中出现异常时,需要及时监控到应用程序出现异常所相关的数据,以便于确定导致应用程序出现异常的异常原因,进而针对异常原因对应用程序进行优化。
技术实现思路
[0004]本专利技术实施例是提供一种应用程序异常原因的确定方法、装置、电子设备以及计算机可读存储介质,以解决如何确定导致应用程序出现异常的异常原因的问题。
[0005]本专利技术实施例公开了一种应用程序异常原因的确定方法,所述应用程序运行于终端设备,所述终端设备为所述应用程序分配有调用堆栈,所述方法包括:
[0006]监控所述应用程序是否出现异常;
[0007]在监控到所述应用程序出现异常时,从所述调用堆栈中导出至少一条调用堆栈信息,以及获取至少一条资源占用信息;其中,所述调用堆栈信息包括所述应用程序当前正在调用的函数,所述资源占用信息表征所述应用程序对所述终端设备的目标资源的占用情况;
[0008]根据所述调用堆栈信息确定导致所述应用程序出现异常的目标函数,并将所述目标函数确定为导致所述应用程序出现异常的异常原因,以及,在根据所述调用堆栈信息无法确定导致所述应用程序出现异常的目标函数或者无法导出所述调用堆栈信息时,根据所述资源占用信息确定导致所述应用程序出现异常的异常原因。
[0009]可选地,在所述监控所述应用程序是否出现异常之前,所述方法还包括:
[0010]获取所述应用程序在历史运行过程中的历史运行数据;其中,所述历史运行数据至少包括所述应用程序出现异常时对应的异常对象;其中,所述异常对象至少包括所述应用程序的目标页面、目标页面组件和/或目标操作;
[0011]将所述异常对象添加到异常数据集中;
[0012]则在所述监控所述应用程序是否出现异常之前,所述方法还包括:
[0013]在所述应用程序的运行时,获取所述异常数据集;
[0014]在所述应用程序启动所述异常数据集中的所述异常对象时,触发监控所述应用程
序是否出现异常。
[0015]可选地,所述异常至少包括所述应用程序出现卡顿,所述应用程序使用所述终端设备提供的事件循环机制,所述应用程序的交互事件为通过所述事件循环机制中的回调事件完成,所述应用程序所述监控所述应用程序是否出现异常,包括:
[0016]监控所述应用程序中的回调事件;
[0017]当监控到所述应用程序的回调事件超过预设超时时间阈值未变化为其他回调事件时,确定所述应用程序出现卡顿。
[0018]可选地,所述根据所述调用堆栈信息确定导致所述应用程序出现异常的目标函数,包括:
[0019]获取所述调用堆栈信息中位于所述调用堆栈的栈顶的函数;其中,所述栈顶函数为所述应用程序当前时刻正在调用的函数;
[0020]将满足预设异常条件的所述栈顶函数,确定为导致所述应用程序出现异常的目标函数。
[0021]可选地,所述将满足预设异常条件的所述栈顶函数,确定为导致所述应用程序出现异常的目标函数,包括:
[0022]统计各个所述栈顶函数被所述应用程序调用的调用时长;
[0023]将所述调用时长超过预设调用时长的所述栈顶函数,确定为导致所述应用程序出现异常的目标函数。
[0024]可选地,所述终端设备的资源至少包括CPU资源,所述资源占用信息至少包括所述应用程序对所述CPU资源的占用率,所述根据所述资源占用信息确定导致所述应用程序出现异常的异常原因,包括:
[0025]当所述应用程序对所述CPU资源的占用率超过第一预设占用率时,确定导致所述应用程序的异常原因为所述应用程序陷入死循环;
[0026]当所述应用程序对所述CPU资源的占用率保持第二预设占用率时,确定导致所述应用程序的异常原因为所述应用程序陷入死锁;其中,所述第一预设占用率大于所述第二预设占用率。
[0027]可选地,所述应用程序和/或所述终端设备分别提供有若干功能操作,在所述根据所述资源占用信息确定导致所述应用程序出现异常的异常原因之前,所述方法还包括:
[0028]检测所述应用程序和/或所述终端设备提供的指定功能操作的响应时间是否超过预设超时时间阈值;其中,所述指定功能操作为预先统计确定的所述应用程序和/或所述终端设备出现异常的概率高于预设概率的功能操作;
[0029]在所述应用程序和/或所述终端设备提供的指定功能操作的响应时间超过预设超时时间阈值时,将所述指定功能操作确定为导致所述应用程序出现异常的异常原因。
[0030]可选地,所述方法还包括:
[0031]根据导致所述应用程序出现异常的异常原因对所述应用程序进行修复,并将所述调用堆栈信息、所述资源占用信息和异常原因发送至指定接收方,以使所述指定接收方分析所述应用程序出现异常的异常原因。
[0032]本专利技术实施例还公开了一种应用程序异常原因的确定装置,所述应用程序运行于终端设备,所述终端设备为所述应用程序分配有调用堆栈,所述装置包括:
[0033]异常监控模块,用于监控所述应用程序是否出现异常;
[0034]数据导出模块,用于在监控到所述应用程序出现异常时,从所述调用堆栈中导出至少一条调用堆栈信息,以及获取至少一条资源占用信息;其中,所述调用堆栈信息包括所述应用程序当前正在调用的函数,所述资源占用信息表征所述应用程序对所述终端设备的目标资源的占用情况;
[0035]异常原因确定模块,用于根据所述调用堆栈信息确定导致所述应用程序出现异常的目标函数,并将所述目标函数确定为导致所述应用程序出现异常的异常原因,以及,在根据所述调用堆栈信息无法确定导致所述应用程序出现异常的目标函数或者无法导出所述调用堆栈信息时,根据所述资源占用信息确定导致所述应用程序出现异常的异常原因。
[0036]可选地,所述装置还包括:异常数据收集模块,用于:
[0037]获取所述应用程序在历史运行过程中的历史运行数据;其中,所述历史运行数据至少包括所述应用程序出现异常时对应的异常对象;其中,所述异常对象至少包括所述应用程序的目标页面、目标页面组件和/或目标操作;
[0038]将所述异常对象添加到异常数据集中;
[0039]则所述装置还包括触发模块,用于:
[0040]在所述应用程序的运行时,获取所述异常数据集;
...
【技术保护点】
【技术特征摘要】
1.一种应用程序异常原因的确定方法,其特征在于,所述应用程序运行于终端设备,所述终端设备为所述应用程序分配有调用堆栈,所述方法包括:监控所述应用程序是否出现异常;在监控到所述应用程序出现异常时,从所述调用堆栈中导出至少一条调用堆栈信息,以及获取至少一条资源占用信息;其中,所述调用堆栈信息包括所述应用程序当前正在调用的函数,所述资源占用信息表征所述应用程序对所述终端设备的目标资源的占用情况;根据所述调用堆栈信息确定导致所述应用程序出现异常的目标函数,并将所述目标函数确定为导致所述应用程序出现异常的异常原因,以及,在根据所述调用堆栈信息无法确定导致所述应用程序出现异常的目标函数或者无法导出所述调用堆栈信息时,根据所述资源占用信息确定导致所述应用程序出现异常的异常原因。2.根据权利要求1所述的方法,其特征在于,在所述监控所述应用程序是否出现异常之前,所述方法还包括:获取所述应用程序在历史运行过程中的历史运行数据;其中,所述历史运行数据至少包括所述应用程序出现异常时对应的异常对象;其中,所述异常对象至少包括所述应用程序的目标页面、目标页面组件和/或目标操作;将所述异常对象添加到异常数据集中;则在所述监控所述应用程序是否出现异常之前,所述方法还包括:在所述应用程序的运行时,获取所述异常数据集;在所述应用程序启动所述异常数据集中的所述异常对象时,触发监控所述应用程序是否出现异常。3.根据权利要求1所述的方法,其特征在于,所述异常至少包括所述应用程序出现卡顿,所述应用程序使用所述终端设备提供的事件循环机制,所述应用程序的交互事件为通过所述事件循环机制中的回调事件完成,所述应用程序所述监控所述应用程序是否出现异常,包括:监控所述应用程序中的回调事件;当监控到所述应用程序的回调事件超过预设超时时间阈值未变化为其他回调事件时,确定所述应用程序出现卡顿。4.根据权利要求1所述的方法,其特征在于,所述根据所述调用堆栈信息确定导致所述应用程序出现异常的目标函数,包括:获取所述调用堆栈信息中位于所述调用堆栈的栈顶的栈顶函数;其中,所述栈顶函数为所述应用程序当前时刻正在调用的函数;将满足预设异常条件的所述栈顶函数,确定为导致所述应用程序出现异常的目标函数。5.根据权利要求4所述的方法,其特征在于,所述将满足预设异常条件的所述栈顶函数,确定为导致所述应用程序出现异常的目标函数,包括:统计各个所述栈顶函数被所述应用程序调用的调用时长;将所述调用时长超过预设调用时长的所述栈顶函数,确定为导致所述应用程序出现异常的目标函数。6.根据权利要求1所述的方法,其特征在于,所述终端设备的资源至少包括CPU资源,所
述资源占用信息至少包括所述应用程序对所述CPU资源的占用率,所述根据...
【专利技术属性】
技术研发人员:廖露阳,彭飞,刘孟,
申请(专利权)人:五八同城信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。