代码块监测方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:37320595 阅读:11 留言:0更新日期:2023-04-21 23:01
本申请涉及软件领域,公开了一种代码块监测方法、装置、电子设备及可读存储介质,其中,该方法包括:根据预先设置的代码块识别特征,对目标代码数据进行分析,获取目标代码数据中存在的代码块的位置;根据代码块的位置,对至少一个代码块嵌入对应的监控代码,通过监控代码获取代码块的运行参数;当确定至少一个代码块的消耗大于预设阈值时,展示代码块的运行参数。通过本申请,可以精确地定位导致消耗过大的代码块,便于用户对代码进行维护。便于用户对代码进行维护。便于用户对代码进行维护。

【技术实现步骤摘要】
代码块监测方法、装置、电子设备及可读存储介质


[0001]本申请涉及软件领域,尤其涉及一种代码块监测方法、装置、电子设备及可读存储介质。

技术介绍

[0002]应用代码运行时(如java代码),可能会出现消耗过大的问题。当出现消耗过大的问题时,可以使用应用性能监测软件(Application Performance Monitor,APM)进行监控,寻找问题。
[0003]但是,目前的APM中大部分都是通过预埋点的方式,监控数据库(Data Base,DB),远程调用等。定位精度不足,无法定位导致消耗过大的代码。

技术实现思路

[0004]基于上述技术问题,本申请提供一种代码块监测方法、装置、电子设备及可读存储介质,能够解决定位精度不足,无法定位导致消耗过大的代码的问题。
[0005]为解决上述技术问题,本申请采用如下技术方案:
[0006]第一方面,本申请提供一种代码块监测方法,包括:
[0007]根据预先设置的代码块识别特征,对目标代码数据进行分析,获取目标代码数据中存在的代码块的位置。根据代码块的位置,对至少一个代码块嵌入对应的监控代码,通过监控代码获取代码块的运行参数。当确定至少一个代码块的消耗大于预设阈值时,展示代码块的运行参数。
[0008]一些实施方式中,代码块包括循环代码块,循环代码块的识别特征包括循环代码块的开始指令和结束指令。
[0009]根据预先设置的代码块识别特征,对目标代码数据进行分析,获取目标代码数据中存在的代码块的位置,包括
[0010]在目标代码数据中识别开始指令和结束指令。当识别到的开始指令存在对应的结束指令时,根据开始指令和结束指令在目标代码数据中的位置,得到循环代码块的位置。
[0011]一些实施方式中,通过监控代码获取代码块的运行参数,包括:根据执行开始指令和结束指令的时间,获取循环代码块的总执行时间。开始指令包括前跳指令,根据前跳指令指示跳转的目标指令,获取循环代码块的执行次数。根据每次执行目标指令的间隔,获取循环代码块的每次执行时间。
[0012]一些实施方式中,代码块包括同步代码块,同步代码块的识别特征包括持锁语句和放锁语句。
[0013]根据预先设置的代码块识别特征,对目标代码数据进行分析,获取目标代码数据中存在的代码块的位置,包括:在目标代码数据中识别持锁语句和放锁语句。当识别到持锁语句和放锁语句时,根据持锁语句和放锁语句的在目标代码数据中的位置,得到同步代码块的位置。
[0014]一些实施方式中,通过监控代码获取代码块的运行参数,包括:获取持锁语句执行阻塞的时间,阻塞的时间为获取锁的等待时间。根据持锁语句和放锁语句执行的时间,获取同步代码块的持锁时间。
[0015]一些实施方式中,对至少一个代码块嵌入对应的监控代码,包括:当目标代码数据中存在多个代码块时,获取每个代码块的标识并展示。接收用户指令,用户指令包括至少一个代码块的标识。对用户指令中包含的代码块的标识指示的代码块嵌入对应的监控代码。
[0016]一些实施方式中,当确定至少一个代码块的消耗大于预设阈值时,展示代码块的运行参数,包括:当代码块的运行时长大于预设阈值时,展示代码块的运行参数。
[0017]在第一方面中,通过代码块的识别特征在目标代码数据中识别代码块,并对代码块嵌入对应的监控代码。通过监控代码获取代码块的运行参数。并在代码块的消耗大于预设阈值时展示代码块的运行参数。可以精确地定位导致消耗过大的代码块,便于用户对代码进行维护。
[0018]第二方面,本申请提供一种代码块监测装置,包括:
[0019]分析模块,用于根据预先设置的代码块识别特征,对目标代码数据进行分析,获取所述目标代码数据中存在的所述代码块的位置;
[0020]嵌入模块,用于根据所述代码块的位置,对至少一个所述代码块嵌入对应的监控代码,通过所述监控代码获取所述代码块的运行参数;
[0021]展示模块,用于当确定至少一个所述代码块的消耗大于预设阈值时,展示所述代码块的所述运行参数。
[0022]一些实施方式中,代码块包括循环代码块,循环代码块的识别特征包括循环代码块的开始指令和结束指令。
[0023]分析模块,具体用于在目标代码数据中识别开始指令和结束指令。当识别到的开始指令存在对应的结束指令时,根据开始指令和结束指令在目标代码数据中的位置,得到循环代码块的位置。
[0024]一些实施方式中,嵌入模块,具体用于根据执行开始指令和结束指令的时间,获取循环代码块的总执行时间。开始指令包括前跳指令,根据前跳指令指示跳转的目标指令,获取循环代码块的执行次数。根据每次执行目标指令的间隔,获取循环代码块的每次执行时间。
[0025]一些实施方式中,代码块包括同步代码块,同步代码块的识别特征包括持锁语句和放锁语句。
[0026]分析模块,具体用于在目标代码数据中识别持锁语句和放锁语句。当识别到持锁语句和放锁语句时,根据持锁语句和放锁语句的在目标代码数据中的位置,得到同步代码块的位置。
[0027]一些实施方式中,嵌入模块,具体用于获取持锁语句执行阻塞的时间,阻塞的时间为获取锁的等待时间。根据持锁语句和放锁语句执行的时间,获取同步代码块的持锁时间。
[0028]一些实施方式中,嵌入模块,具体用于当目标代码数据中存在多个代码块时,获取每个代码块的标识并展示。接收用户指令,用户指令包括至少一个代码块的标识。对用户指令中包含的代码块的标识指示的代码块嵌入对应的监控代码。
[0029]一些实施方式中,展示模块,用于当代码块的运行时长大于预设阈值时,展示代码
块的运行参数。
[0030]第三方面,本申请提供一种电子设备,该电子设备包括处理器和存储器;存储器中存储有处理器可执行的指令;处理器被配置为执行指令时,使得电子设备实现上述第一方面的方法。
[0031]第四方面,一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述的方法。
[0032]第五方面,本申请提供一种计算机程序产品,当该计算程序产品在电子设备上运行时,使得电子设备执行上述第一方面相关方法的步骤,以实现上述第一方面的方法。
[0033]上述第二方面至第五方面的有益效果可以参照第一方面和第二方面,不再赘述。
附图说明
[0034]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1示出了本申请一实施例中提供的代码块监测方法的流程示意图;
[0036]图2示出了本申请一实施例提供的代码块监测装置的结构框图;
[0037]图3示出了可以用来实施本公开的实施例的电子设备300的示意性框图。
具体实施方式<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码块监测方法,其特征在于,包括:根据预先设置的代码块识别特征,对目标代码数据进行分析,获取所述目标代码数据中存在的所述代码块的位置;根据所述代码块的位置,对至少一个所述代码块嵌入对应的监控代码,通过所述监控代码获取所述代码块的运行参数;当确定至少一个所述代码块的消耗大于预设阈值时,展示所述代码块的所述运行参数。2.根据权利要求1所述的方法,其特征在于,所述代码块包括循环代码块,所述循环代码块的识别特征包括所述循环代码块的开始指令和结束指令;所述根据预先设置的代码块识别特征,对目标代码数据进行分析,获取所述目标代码数据中存在的所述代码块的位置,包括:在所述目标代码数据中识别所述开始指令和所述结束指令;当识别到的所述开始指令存在对应的所述结束指令时,根据所述开始指令和所述结束指令在所述目标代码数据中的位置,得到所述循环代码块的位置。3.根据权利要求2所述的方法,其特征在于,通过所述监控代码获取所述代码块的运行参数,包括:根据执行所述开始指令和所述结束指令的时间,获取所述循环代码块的总执行时间;所述开始指令包括前跳指令,根据所述前跳指令指示跳转的目标指令,获取所述循环代码块的执行次数;根据每次执行所述目标指令的间隔,获取所述循环代码块的每次执行时间。4.根据权利要求1所述的方法,其特征在于,所述代码块包括同步代码块,所述同步代码块的识别特征包括持锁语句和放锁语句;所述根据预先设置的代码块识别特征,对目标代码数据进行分析,获取所述目标代码数据中存在的所述代码块的位置,包括:在所述目标代码数据中识别所述持锁语句和所述放锁语句;当识别到所述持锁语句和所述放锁语句时,根据所述持锁语句和所述放锁语句的在所述目标代码数据中的位置,得到所述同步代码块的位置。5.根据权利要求4所述的方法,其特征在于,通过...

【专利技术属性】
技术研发人员:杜中原
申请(专利权)人:北京基调网络股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1