【技术实现步骤摘要】
数据获取方法、装置、电子设备及计算机可读存储介质
本专利技术涉及计算机
,特别是涉及一种数据获取方法、装置、电子设备及计算机可读存储介质。
技术介绍
在程序开发或应用过程中,需要对程序的性能进行不断优化,优化的性能参数中特别重要的一点是程序的运行速度。那么为了监控程序中各个代码的耗时时间,目前主要通过在程序开发阶段,开发人员手动在程序源代码中针对每个方法分别预埋能够采集耗时时间的代码,然后,将预埋代码的程序源代码进行编译,生成字节码文件,最后对字节码文件打包,生成程序的安装文件。在将安装文件运行后,能够在程序运行过程中利用预埋的代码对待监测的代码进行耗时统计,以便对耗时较长的代码进行优化。但是,这种通过预埋耗时时间采集代码的方式来进行耗时统计的方案,只能在代码开发阶段进行代码预埋,并且需要人工的逐个对每个待耗时统计的目标代码来预埋耗时时间采集代码,存在着耗时时间的采集效率较低的问题;另外,如果需要调整预埋代码,则需要对程序中的每个预埋代码逐个进行重复的修改,并重新进行编译、打包等操作,即程序需要重新进行一次完整的开发流程,显然,这会造成代码的维护成本较高;此外,耗时时间采集代码由于在开发阶段预埋至程序源代码中,这也会造成耗时时间采集代码与程序的业务代码的耦合性较强的问题。
技术实现思路
本专利技术提供了一种数据获取方法、装置、电子设备及计算机可读存储介质,以解决相关技术中的耗时数据采集方案所存在的数据采集效率低、采集代码与业务代码耦合性强、代码维护成本高的问题。为了解决上述问题,根据本专利技术的一个方面,本专利技术公开了一种数据获取方法,包括:根据应用程 ...
【技术保护点】
1.一种数据获取方法,其特征在于,包括:根据应用程序的预设配置文件,识别所述应用程序中待监测的目标字节码、以及所述目标字节码中待监测的目标方法;将预设插桩代码转换为字节码形式的目标插桩代码;调用预设插桩接口,在所述目标方法中内部逻辑代码的前后插入所述目标插桩代码,其中,所述目标插桩代码用于获取所述目标方法的耗时数据。
【技术特征摘要】
1.一种数据获取方法,其特征在于,包括:根据应用程序的预设配置文件,识别所述应用程序中待监测的目标字节码、以及所述目标字节码中待监测的目标方法;将预设插桩代码转换为字节码形式的目标插桩代码;调用预设插桩接口,在所述目标方法中内部逻辑代码的前后插入所述目标插桩代码,其中,所述目标插桩代码用于获取所述目标方法的耗时数据。2.根据权利要求1所述的方法,其特征在于,所述根据应用程序的预设配置文件,识别所述应用程序中待监测的目标字节码、以及所述目标字节码中待监测的目标方法,包括:根据应用程序的预设配置文件中的字节码筛选参数,对所述应用程序的字节码进行筛选,识别与所述字节码筛选参数匹配的目标字节码,其中,所述字节码筛选参数包括以下至少之一:项目名、包名、类名;根据所述预设配置文件中的方法参数,对所述目标字节码中的方法进行筛选,识别所述目标字节码中的目标方法。3.根据权利要求2所述的方法,其特征在于,所述根据所述预设配置文件中的方法参数,对所述目标字节码中的方法进行筛选,识别所述目标字节码中的目标方法,包括:若目标字节码中存在与所述预设配置文件中的方法参数相匹配的目标方法,则识别所述目标方法;若目标字节码中不存在与所述预设配置文件中的方法参数相匹配的目标方法,则将所述目标字节码中的每个方法识别为目标方法。4.根据权利要求2所述的方法,其特征在于,若所述预设配置文件还包括黑名单,则所述根据应用程序的预设配置文件,识别所述应用程序中待监测的目标字节码、以及所述目标字节码中待监测的目标方法,还包括:根据所述黑名单,对筛选后的所述目标字节码进行过滤,得到待监测的目标字节码;根据所述黑名单,对过滤后的目标字节码中的所述目标方法进行过滤,得到待监测的目标方法。5.根据权利要求1所述的方法,其特征在于,所述目标插桩代码包括第一插桩代码和第二插桩代码,所述调用预设插桩接口,在所述目标方法中内部逻辑代码的前后插入所述目标插桩代码,包括:调用预设插桩接口,在所述目标方法中内部逻辑代码之前插入所述第一插桩代码,在所述目标方法中内部逻辑代码之后插入所述第二插桩代码;其中,所述第一插桩代码用于采集时间信息,并将所述时间信息传递至所述第二插桩代码;所述第二插桩代码用于采集时间信息,并计算采集的时间信息与接收自所述第一插桩代码的时间信息的时间差值,其中,所述时间差值为所述目标方法的耗时数据。6.根据权利要求5所述的方法,其特征在于,所述第一插桩代码和所述第二插桩代码采集的时间信息对应的时间类型包括以下至少之一:CPU时间、系统时间、时钟时间。7.根据权利要求5所述的方法,其特征在于,所述调用预设插桩接口,在所述目标方法中内部逻辑代码的前后插入所述目标插桩代码之后,所述方法还包括:在所述应用程序运行过程中,当所述目标方法被触发时,则依次执行所述第一插桩代码、所述内部逻辑代码和所述第二插桩代码,以获取所述第二插桩代码输出的所述目标方法的耗时数据。8.根据权利要求7所述的方法,其特征在于,所述在所述应用程序运行过程中,当所述目标方法被触发时,则依次执行所述第一插桩代码、所述内部逻辑代码和所述第二插桩代码,以获取所述第二插桩代码输出的所述目标方法的耗时数据之后,所述方法还包括:若所述预设配置文件包括预设时长区间,则在多个目标方法中筛选出耗时数据在所述预设时长区间内的目标方法;输出筛选得到的所述目标方法、以及与筛选得到的所述目标方法匹配的耗时数据。9.根据权利要求1所述的方法,其特征在于,所述目标插桩代码还用于获取线程信息,其中,所述线程信息为所述目标方法占用的目标线程的信息。10.根据权利要求9所述的方法,其特征在于,所述调用预设插桩接口,在所述目标方法中内部逻辑代码的前后插入所述目标插桩代码之后,所述方法还包括:在所述应用程序运行过程中,当所述目标方法被触发时,运行所述目标插桩代码,以获取所述目标插桩代码输出的所述目标方法占用的目标线程的信息;若所述应用程序的预设配置文件包括预设线程信息,则在多个目标方法中筛选出占用的目标线程的信息与所述预设线程信息匹配的目标方法;输出筛选得到的所述目标方法、以及与筛选得到的所述目标方法匹配的耗时数据。11.根据权利要求1所述的方法,其特征在于,所述调用预设插桩接口,在所述目标方法中内部逻辑代码的前后插入所述目标插桩代码,其中,所述目标插桩代码用于获取所述目标方法的耗时数据之后,所述方法还包括:将所述应用程序中的每个字节码进行打包处理,生成插桩后的所述应用程序的安装文件;根据所述安装文件运行插桩后的所述应用程序。12.根据权利要求1所述的方法,其特征在于,所述根据应用程序的预设配置文件,识别所述应用程序中待监测的目标字节码、以及所述目标字节码中待监测的目标方法,包括:若检测到应用程序的源代码编译生成字节码,则根据应用程序的预设配置文件,识别所述字节码中待监测的目标字节...
【专利技术属性】
技术研发人员:蔡敏明,田胜军,
申请(专利权)人:北京奇艺世纪科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。