System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种异常处理方法、装置、电子设备及计算机可读介质。
技术介绍
1、目前,java系统运行期容易报内存溢出(out of memory,简称oom)异常,表现形式为,系统抛出java.lang.outofmemoryerror异常,造成系统宕机或功能不可用。遇到这种问题,一般是程序员导出并分析堆转储文件,进而确定造成内存溢出的对象,优化代码或优化jvm虚拟机参数,并重新打包部署,重新发布。对内存溢出异常的整个修复过程耗费人力物力,并且修复过程冗长,修复之前系统长时间处于不可用状态,负面影响范围较大。
技术实现思路
1、有鉴于此,本申请实施例提供一种异常处理方法、装置、电子设备及计算机可读介质,能够解决现有的对内存溢出异常的整个修复过程耗费人力物力,并且修复过程冗长,负面影响范围较大,异常处理效率低问题。
2、为实现上述目的,根据本申请实施例的一个方面,提供了一种异常处理方法,包括:
3、响应于异常处理请求,获取对应的异常类型标识;
4、响应于异常类型标识对应于内存溢出异常,调用统计信息表以获取内存对象的占用空间和对应的访问频率;
5、基于占用空间和访问频率,确定目标内存对象;
6、对目标内存对象进行序列化,以得到序列化数据,存储序列化数据至预设容器,进而清空目标内存对象对应的数据。
7、可选地,在清空目标内存对象对应的数据之后,方法还包括:
8、响应于当前时间到达循环任务对应
9、调用内存管理类以获取内存使用率;
10、响应于字段访问频率大于第一预设阈值或者内存使用率小于第二预设阈值,基于序列化数据执行反序列化进程。
11、可选地,基于序列化数据执行反序列化进程,包括:
12、获取序列化数据对应的顺序标识,响应于顺序标识对应的是存在顺序,将序列化数据反序列化,以生成反序列化对象;
13、根据前插法将反序列化对象插入内存中的相应字段。
14、可选地,基于序列化数据执行反序列化进程,包括:
15、响应于顺序标识对应的是不存在顺序,将序列化数据反序列化,以生成反序列化对象;
16、直接将反序列化对象插入内存中的任意位置。
17、可选地,确定目标内存对象,包括:
18、对访问频率升序排列,对占用空间降序排列,进而依序获取预设数量的内存对象并作为目标内存对象。
19、可选地,在调用统计信息表从所连接的交换表中获取序列化数据对应的字段访问频率之前,方法还包括:
20、基于类名称和类打包名称对交换表和信息统计表进行内连接。
21、可选地,在调用统计信息表以获取内存对象的占用空间和对应的访问频率之前,方法还包括:
22、拦截内存对象对应的全局字段的方法注解;
23、基于方法注解,获取内存对象的占用空间和对应的访问频率并记录至统计信息表中。
24、另外,本申请还提供了一种异常处理装置,包括:
25、第一获取单元,被配置成响应于异常处理请求,获取对应的异常类型标识;
26、第二获取单元,被配置成响应于异常类型标识对应于内存溢出异常,调用统计信息表以获取内存对象的占用空间和对应的访问频率;
27、目标内存对象确定单元,被配置成基于占用空间和访问频率,确定目标内存对象;
28、序列化单元,被配置成对目标内存对象进行序列化,以得到序列化数据,存储序列化数据至预设容器,进而清空目标内存对象对应的数据。
29、可选地,异常处理装置还包括反序列化单元,被配置成:
30、响应于当前时间到达循环任务对应的执行时间,执行相对应的循环任务,以调用统计信息表从所连接的交换表中获取序列化数据对应的字段访问频率;
31、调用内存管理类以获取内存使用率;
32、响应于字段访问频率大于第一预设阈值或者内存使用率小于第二预设阈值,基于序列化数据执行反序列化进程。
33、可选地,反序列化单元进一步被配置成:
34、获取序列化数据对应的顺序标识,响应于顺序标识对应的是存在顺序,将序列化数据反序列化,以生成反序列化对象;
35、根据前插法将反序列化对象插入内存中的相应字段。
36、可选地,反序列化单元进一步被配置成:
37、响应于顺序标识对应的是不存在顺序,将序列化数据反序列化,以生成反序列化对象;
38、直接将反序列化对象插入内存中的任意位置。
39、可选地,目标内存对象确定单元进一步被配置成:
40、对访问频率升序排列,对占用空间降序排列,进而依序获取预设数量的内存对象并作为目标内存对象。
41、可选地,异常处理装置还包括内连接单元,被配置成:
42、基于类名称和类打包名称对交换表和信息统计表进行内连接。
43、可选地,第二获取单元进一步被配置成:
44、拦截内存对象对应的全局字段的方法注解;
45、基于方法注解,获取内存对象的占用空间和对应的访问频率并记录至统计信息表中。
46、另外,本申请还提供了一种异常处理电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述的异常处理方法。
47、另外,本申请还提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现如上述的异常处理方法。
48、上述专利技术中的一个实施例具有如下优点或有益效果:本申请通过响应于异常处理请求,获取对应的异常类型标识;响应于异常类型标识对应于内存溢出异常,调用统计信息表以获取内存对象的占用空间和对应的访问频率;基于占用空间和访问频率,确定目标内存对象;对目标内存对象进行序列化,以得到序列化数据,存储序列化数据至预设容器,进而清空目标内存对象对应的数据。从而可以提升异常处理效率,降低系统因内存溢出异常而处于不可用状态的时间,提升系统稳定性。
49、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
本文档来自技高网...【技术保护点】
1.一种异常处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述清空所述目标内存对象对应的数据之后,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述序列化数据执行反序列化进程,包括:
4.根据权利要求2所述的方法,其特征在于,所述基于所述序列化数据执行反序列化进程,包括:
5.根据权利要求1所述的方法,其特征在于,所述确定目标内存对象,包括:
6.根据权利要求2所述的方法,其特征在于,在所述调用统计信息表从所连接的交换表中获取所述序列化数据对应的字段访问频率之前,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,在所述调用统计信息表以获取内存对象的占用空间和对应的访问频率之前,所述方法还包括:
8.一种异常处理装置,其特征在于,包括:
9.一种异常处理电子设备,其特征在于,包括:
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
【技术特征摘要】
1.一种异常处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述清空所述目标内存对象对应的数据之后,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述序列化数据执行反序列化进程,包括:
4.根据权利要求2所述的方法,其特征在于,所述基于所述序列化数据执行反序列化进程,包括:
5.根据权利要求1所述的方法,其特征在于,所述确定目标内存对象,包括:
6.根据权利要求2所述的方法,其特...
【专利技术属性】
技术研发人员:曹大为,
申请(专利权)人:北京京东乾石科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。