System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 程序运行耗时的监测方法、装置、电子设备及存储介质制造方法及图纸_技高网

程序运行耗时的监测方法、装置、电子设备及存储介质制造方法及图纸

技术编号:41700528 阅读:24 留言:0更新日期:2024-06-19 12:34
本发明专利技术属于计算机软件技术领域,公开了一种程序运行耗时的监测方法、装置、电子设备及存储介质,该方法包括:S1、获取待监测程序的线程内分级耗时监测模块,并对其进行初始化;S2、根据线程内的相关函数,调用相对应的分级耗时监测接口;S3、根据预设的分级耗时监测函数,判断是否需要重新初始化,若不需要,则计算线程运行时分级耗时的时长,否则,返回S1;S4、根据线程运行时分级耗时的时长,更新线程内相关函数的最小监测时长;S5、判断线程运行时分级耗时的时长是否大于线程内相关函数的最小监测时长,若是,则格式化输出分级耗时监测日志,否则,返回S3。本发明专利技术所述方法能够快速定位出APP程序运行时的耗时程序的位置。

【技术实现步骤摘要】

本专利技术属于计算机软件,具体涉及一种程序运行耗时的监测方法、装置、电子设备及存储介质


技术介绍

1、新一代用电信息采集终端大多采用app程序化的设计方式,用电信息采集终端内各app程序之间根据相关技术规范要求相互协作、相互独立,互不干涉,共同完成用电信息采集终端的各类任务。然而,用电信息采集终端内的app程序数量众多,一个终端有十几到二十几个app程序在同时运行,每个app程序内普遍有十几个线程在运行,且单个app程序代码量较大,各app程序设计差异较大,且各app程序是一个独立的程序,如果某一个app程序运行时对cpu的资源占用不当,cpu的资源占用持续性过高或者突然过高,都会影响到用电信息采集终端内其他app程序的运行,这就会导致其他app程序对cpu的资源使用得不到满足,从而影响电信息采集终端整体运行的稳定性。

2、然而,app程序运行时,cpu资源占用不当的程序耗时位置较难定位,特别是在代码量比较庞大的情况下,通过走查代码的方式是很难找出程序耗时位置所在,通常情况下,是通过直接在程序中不断的增加日志打印的方式进行分析和查找,但因增加的日志打印格式统一性差、且增加起来复杂、繁琐,这样就会导致原本整洁的程序代码,从而变的混乱、可读性差等问题,有时还有可能会改变程序本身的运行逻辑,引入不必要的错误等问题。

3、因此,如何快速准确的定位出app程序运行时的耗时程序的位置,是一个亟待解决的技术问题。


技术实现思路

1、为了解决上述app程序运行时,无法快速准确的对耗时程序进行定位的技术问题,本专利技术提供了一种程序运行耗时的监测方法。

2、第一方面,本专利技术提供了一种程序运行耗时的监测方法,应用于用电信息采集终端,包括:

3、步骤s1、获取待监测程序的线程内分级耗时监测模块,并对所述分级耗时监测模块进行初始化;

4、步骤s2、根据待检测程序的线程内的相关函数,调用相对应的分级耗时监测接口;

5、步骤s3、根据预设的分级耗时监测函数,判断是否需要重新初始化分级耗时监测模块,若不需要,则计算待检测程序的线程运行时分级耗时的时长,否则,返回步骤s1;

6、步骤s4、根据所述待检测程序的线程运行时分级耗时的时长,更新所述待检测程序的线程内相关函数的最小监测时长;

7、步骤s5、判断所述待检测程序的线程运行时分级耗时的时长是否大于所述待检测程序的最小监测时长,若是,则格式化输出分级耗时监测日志,否则,返回步骤s3。

8、优选的,所述步骤s1包括:

9、对所述分级耗时监测模块的分级耗时时间和分级级别序号进行初始化,并预设所述分级耗时监测模块的最大监测线程数。

10、优选的,所述步骤s2包括:

11、若所述待检测程序的线程内的相关函数为线程主函数,则调用1级分级耗时监测接口;

12、若所述待检测程序的线程内的相关函数为线程调用函数,则调用2级分级耗时监测接口;

13、若所述待检测程序的线程内的相关函数为线程调用1级嵌套函数,则调用3级分级耗时监测接口。

14、优选的,所述步骤s3中,所述计算待检测程序的线程运行时分级耗时的时长,包括:

15、获取前一时刻待检测程序的线程运行时的第一时长和当前时刻待检测程序的线程运行时的第二时长;

16、根据所述第一时长和所述第二时长的时长差,得到待检测程序的线程运行时分级耗时的时长。

17、优选的,所述步骤s5中,格式化输出分级耗时监测日志,包括:

18、通过在所述待检测程序中插入格式化输出分级耗时监测日志的相关代码,得到待检测程序的线程内耗时函数的相关信息。

19、优选的,所述步骤s5之后,还包括:

20、对所述分级耗时监测日志进行分析,并定位出待检测程序的线程内耗时函数的代码位置;

21、根据所述待检测程序的线程内耗时函数的代码位置,对所述待检测程序的线程内耗时函数的代码进行优化处理。

22、优选的,对所述分级耗时监测日志进行分析,包括:

23、通过对所述分级耗时监测日志进行关键词搜索和匹配,得到待检测程序的线程内耗时函数的代码行号。

24、第二方面,本专利技术还提供了一种程序运行耗时的监测装置,包括:

25、获取模块、用于获取待监测程序的线程内分级耗时监测模块,并对所述分级耗时监测模块进行初始化;

26、调用模块、用于根据待检测程序的线程内的相关函数,调用相对应的分级耗时监测接口;

27、第一判断模块、用于根据预设的分级耗时监测函数,判断是否需要重新初始化分级耗时监测模块,若不需要,则计算待检测程序的线程运行时分级耗时的时长,否则,返回第一判断模块;

28、更新模块、用于根据所述待检测程序的线程运行时分级耗时的时长,更新所述待检测程序的线程内相关函数的最小监测时长;

29、第二判断模块、用于判断所述待检测程序的线程运行时分级耗时的时长是否大于所述待检测程序的线程内相关函数的最小监测时长,若是,则格式化输出分级耗时监测日志,否则,返回第一判断模块。

30、第三方面,本专利技术还提供了一种电子设备,包括处理器、以及与所述处理器耦接的存储器,所述存储器存储有可被所述处理器执行的程序指令;所述处理器执行所述存储器存储的所述程序指令时实现如上述第一方面中任一项所述的程序运行耗时的监测方法。

31、第四方面,本专利技术还提供了一种存储介质,所述存储介质内存储有程序指令,所述程序指令被处理器执行时实现能够实现如上述第一方面中任一项所述的程序运行耗时的监测方法。

32、与现有技术相比,本专利技术提供的一种程序运行耗时的监测方法,通过在待检测线程内设置分级耗时监测模块,并根据待检测程序的线程内的相关函数,调用相对应的分级耗时监测接口,能够快速分析、并定位出app程序运行时的耗时程序的位置。

本文档来自技高网...

【技术保护点】

1.一种程序运行耗时的监测方法,应用于用电信息采集终端,其特征在于,包括:

2.根据权利要求1所述的程序运行耗时的监测方法,其特征在于,所述步骤S1包括:

3.根据权利要求2所述的程序运行耗时的监测方法,其特征在于,所述步骤S2包括:

4.根据权利要求3所述的程序运行耗时的监测方法,其特征在于,所述步骤S3中,所述计算待检测程序的线程运行时分级耗时的时长,包括:

5.根据权利要求4所述的程序运行耗时的监测方法,其特征在于,所述步骤S5中,格式化输出分级耗时监测日志,包括:

6.根据权利要求1所述的程序运行耗时的监测方法,其特征在于,所述步骤S5之后,还包括:

7.根据权利要求6所述的程序运行耗时的监测方法,其特征在于,对所述分级耗时监测日志进行分析,包括:

8.一种程序运行耗时的监测装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括处理器、以及与所述处理器耦接的存储器,所述存储器存储有可被所述处理器执行的程序指令;所述处理器执行所述存储器存储的所述程序指令时实现如权利要求1至7中任一项所述的程序运行耗时的监测方法。

10.一种存储介质,其特征在于,所述存储介质内存储有程序指令,所述程序指令被处理器执行时实现能够实现如权利要求1至7中任一项所述的程序运行耗时的监测方法。

...

【技术特征摘要】

1.一种程序运行耗时的监测方法,应用于用电信息采集终端,其特征在于,包括:

2.根据权利要求1所述的程序运行耗时的监测方法,其特征在于,所述步骤s1包括:

3.根据权利要求2所述的程序运行耗时的监测方法,其特征在于,所述步骤s2包括:

4.根据权利要求3所述的程序运行耗时的监测方法,其特征在于,所述步骤s3中,所述计算待检测程序的线程运行时分级耗时的时长,包括:

5.根据权利要求4所述的程序运行耗时的监测方法,其特征在于,所述步骤s5中,格式化输出分级耗时监测日志,包括:

6.根据权利要求1所述的程序运行耗时的监测方法,其特征在于,所述...

【专利技术属性】
技术研发人员:郭树海
申请(专利权)人:深圳市科陆电子科技股份有限公司
类型:发明
国别省市:

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

1