System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术实施例涉及计算机,尤其涉及一种锁监控方法、装置、设备及存储介质。
技术介绍
1、在计算机软件开发过程中,经常会出现多线程访问共享对象的情况,这时就需要对共享对象进行加锁操作,以保证共享数据的数据完整性。在多线程环境下,需要访问多个共享对象时,为提高多线程的并发性,可以使用多个锁,尽可能地缩短每个锁的作用范围。使用锁进行共享对象,临界区的访问,可能会出现各线程间相互等待时间较长、无响应等问题,导致应用程序效率低下。
2、目前,在计算机相关的程序使用中,一般通过系统监视器程序实时显示当前系统中cpu、内存、网络、磁盘等资源的使用情况。通过系统监视器,可以很直观的了解当前系统中各应用占用的cpu、内存等,方便地分析程序是否存在明显的异常情况。但是由系统监视器程序提供的都是相对非常宏观的监视单位,如cpu、内存等的使用情况,在锁这种程序内部变量的监视上就做不到非常直观的显示,无法提供更多信息找到问题所在。
技术实现思路
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、应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
本文档来自技高网...【技术保护点】
1.一种锁监控方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求2所述的方法,其特征在于,所述请求锁信息还包括:请求锁对应的时间,所述释放锁信息还包括:释放锁对应的时间;
4.根据权利要求3所述的方法,其特征在于,还包括:
5.根据权利要求4所述的方法,其特征在于,所述目标锁图像中锁按照请求锁在请求锁栈中的顺序依次排布。
6.一种锁监控装置,其特征在于,包括:
7.根据权利要求6所述的装置,其特征在于,还包括:
8.根据权利要求7所述的装置,其特征在于,所述请求锁信息还包括:请求锁对应的时间,所述释放锁信息还包括:释放锁对应的时间;
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-5中任一项所述的锁监控方法。
【技术特征摘要】
1.一种锁监控方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求2所述的方法,其特征在于,所述请求锁信息还包括:请求锁对应的时间,所述释放锁信息还包括:释放锁对应的时间;
4.根据权利要求3所述的方法,其特征在于,还包括:
5.根据权利要求4所述的方法,其特征在于,所述目标锁图像中锁按照请求锁在请求锁栈中的顺序依次排布。
6.一种锁监控装置,其...
【专利技术属性】
技术研发人员:王磊,相增辉,陈轩,高若寒,李赫然,李瑾辉,刘小磊,刘雷,崔祺,
申请(专利权)人:国网江苏省电力有限公司信息通信分公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。