CN118113580A - 程序运行时长处理方法、装置、设备及存储介质 - Google Patents
程序运行时长处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN118113580A CN118113580A CN202410294539.6A CN202410294539A CN118113580A CN 118113580 A CN118113580 A CN 118113580A CN 202410294539 A CN202410294539 A CN 202410294539A CN 118113580 A CN118113580 A CN 118113580A
- Authority
- CN
- China
- Prior art keywords
- function
- determining
- executed
- timing
- timer task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000012544 monitoring process Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 claims description 221
- 238000004590 computer program Methods 0.000 claims description 14
- 238000005314 correlation function Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种程序运行时长处理方法、装置、设备及存储介质,属于数据处理技术领域。包括:接收执行时长监测指令;根据被监测程序中的注解信息,确定被监测程序中待执行函数对应的计时器任务名称;获取计时器任务名称对应的目标计时器任务;确定目标计时器任务的计时状态;若计时状态为正在计时,则直至待执行函数执行结束,控制目标计时器任务停止计时,得到运行时长;确定待执行函数的关联函数;将关联函数确定为新的待执行函数,并重新执行确定计时器任务名称至确定关联函数的步骤,直至没有新的关联函数,得到各待执行函数对应的运行时长。本申请的方法,解决了记录程序运行时长的方法使程序出错的可能性增加的问题。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种程序运行时长处理方法、装置、设备及存储介质。
背景技术
当前大量的事项处理通过程序代码执行,为了减少程序的运行时长,通常需要对程序中代码段的运行时长进行记录,从而在程序运行结束后对程序进行调整。
目前,现有技术中通过在程序中添加计时函数代码,在运行程序的过程中执行计时函数代码,实现对程序运行时长进行计时。
但是,发明人发现现有技术至少存在如下技术问题:当前记录程序运行时长的方法使程序出错的可能性增加。
发明内容
本申请提供一种程序运行时长处理方法、装置、设备及存储介质,用以解决记录程序运行时长的方法使程序出错的可能性增加的问题。
第一方面,本申请提供一种程序运行时长处理方法,包括:接收执行时长监测指令,其中执行时长监测指令对应被监测程序;根据被监测程序中的注解信息,确定被监测程序中待执行函数对应的计时器任务名称;获取计时器任务名称对应的目标计时器任务;确定目标计时器任务的计时状态;若计时状态为正在计时,则直至待执行函数执行结束,控制目标计时器任务停止计时,得到运行时长;确定待执行函数的关联函数;将关联函数确定为新的待执行函数,并重新执行确定计时器任务名称至确定关联函数的步骤,直至没有新的关联函数,得到各待执行函数对应的运行时长。
在一种可能的实现方式中,根据被监测程序中的注解信息,确定被监测程序中待执行函数对应的计时器任务名称,包括:若读取的注解信息中包含预设的关键字段,则将注解信息对应的代码行确定为目标代码行;根据目标代码行,确定待执行函数对应的计时器任务名称。
在一种可能的实现方式中,根据目标代码行,确定待执行函数对应的计时器任务名称,包括:将目标代码行中的全限定方法名称,确定为待执行函数对应的计时器任务名称。
在一种可能的实现方式中,确定目标计时器任务的计时状态,包括:若能查找到目标计时器任务对应的目标进程,则确定目标计时器任务的计时状态为正在计时,否则确定目标计时器任务的计时状态为未开始计时;或,查找目标计时器任务对应的计时日志;根据计时日志确定目标计时器任务的计时状态。
在一种可能的实现方式中,确定待执行函数的关联函数,包括:获取待执行函数的子函数,并将子函数确定为关联函数;若待执行函数没有子函数,则获取待执行函数的父函数,并将父函数确定为关联函数。
在一种可能的实现方式中,在得到各待执行函数对应的运行时长之后,还包括:将各待执行函数对应的运行时长相加,得到注解信息对应的总运行时长;输出各待执行函数对应的运行时长及总运行时长。
第二方面,本申请提供一种程序运行时长处理装置,包括:指令接收模块,用于接收执行时长监测指令,其中执行时长监测指令对应被监测程序;名称确定模块,用于根据被监测程序中的注解信息,确定被监测程序中待执行函数对应的计时器任务名称;状态确定模块,用于获取计时器任务名称对应的目标计时器任务;状态确定模块,用于确定目标计时器任务的计时状态;时长获取模块,用于若计时状态为正在计时,则直至待执行函数执行结束,控制目标计时器任务停止计时,得到运行时长;函数确定模块,用于确定待执行函数的关联函数;时长获得模块,用于将关联函数确定为新的待执行函数,并重新执行确定计时器任务名称至确定关联函数的步骤,直至没有新的关联函数,得到各待执行函数对应的运行时长。
第三方面,本申请提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得处理器执行如第一方面描述的程序运行时长处理方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面描述的程序运行时长处理方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面描述的程序运行时长处理方法。
本申请提供的程序运行时长处理方法、装置、设备及存储介质,通过在接收执行时长监测指令后,根据被检测程序中的注解信息,确定计时器任务名称,由计时器任务名称获取对应的目标计时器任务,并确定目标计时器任务的计时状态,在计时状态为正在计时的情况下,到待执行函数执行结束,控制目标计时器任务停止计时,得到运行时长,确定新的待执行函数后重新执行上述步骤,得到被注解标记的函数的相关运行时长,由于不需要侵入代码,减少了程序报错的可能性,同时也由于不需要在程序中添加额外的代码,减少了计时本身对程序运行时间的影响。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的程序运行时长处理方法的应用场景示意图;
图2为本申请实施例提供的程序运行时长处理方法的流程示意图;
图3为本申请实施例提供的计时原理示意图;
图4为本申请实施例提供的程序运行时长处理装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
当前,随着信息技术的快速发展,大量的任务处理已经由程序代码来执行。为了提高程序的运行效率,降低不必要的资源消耗,对程序中各个代码段的运行时长进行精确记录显得尤为重要。这样,当程序运行结束后,开发者可以根据这些记录的数据对程序进行针对性的优化。
目前,现行的技术手段主要是通过在程序中嵌入计时函数代码来实现对程序运行时间的测量。这些计时函数代码在程序执行过程中同时运行,从而实现对程序各个部分的运行时长进行计时。但是这种计时方法有可能与程序中的其他代码产生冲突,这增加了程序出现错误、运行不稳定的可能性。因此,如何在不影响程序正常运行的前提下,实现对程序运行时长的精确测量,成为了一个亟待解决的问题。
针对上述技术问题,发明人提出如下技术构思:通过在需要被检测的程序中添加注解,在进行计时的情况下确定注解中是不是包含预设的字段,若包含预设的字段,则找到注解对应的函数,采用函数名进行计时,并对这个函数相关的函数进行计时,实现对程序的运行时长进行监测。
图1为本申请实施例提供的程序运行时长处理方法的应用场景示意图。如图1,该场景中,包括:终端设备101和/或服务器102。
在具体实现过程中,终端设备101,可以包括计算机、服务器、平板、手机、掌上电脑(Personal Digital Assistant,PDA)以及笔记本等,它们可以进行数据的输入。
服务器102可以利用具有更强大处理能力和更高安全性的一个服务器或多个服务器组成的集群来实现,在可能的情况下,还可以使用计算能力较强的计算机、笔记本电脑等进行替代。
服务器102和终端设备101之间的连接方式可以是有线连接也可以是无线连接的。
终端设备101和服务器102,都可以用于接收执行时长监测指令,并对程序的运行时长进行监测,若终端设备101和服务器102之间通信连接,则服务器102可以接收终端设备101发送的执行时长监测指令,并进行程序运行时长的监测。
可以理解的是,本申请实施例示意的结构并不构成对程序运行时长处理方法的具体限定。在本申请另一些可行的实施方式中,上述架构可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置,具体可根据实际应用场景确定,在此不做限制。图1所示的部件可以由硬件,软件,或软件与硬件的组合实现。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的程序运行时长处理方法的流程示意图。本申请实施例的执行主体可以是图1中的服务器、终端设备,也可以是电脑和/或手机等,本实施例对此不作特别限制。如图2所示,该方法包括:
S201:接收执行时长监测指令,其中执行时长监测指令对应被监测程序。
在本步骤中,执行时长监测指令可以是工作人员输入的,也可以是工作人员通过终端设备发送的。
S202:根据被监测程序中的注解信息,确定被监测程序中待执行函数对应的计时器任务名称。
在本步骤中,可以包括在读取到被监测程序中的注解信息后,确定注解信息中是否包含预设的字段,若包含预设的字段,则根据注解信息对应的代码段,确定计时器任务的名称。
其中,根据注解信息对应的代码段,确定计时器任务的名称,可以包括将代码段中的函数名、类名拼接,得到计时器任务的名称。也可以包括将注解信息对应的代码段输入预设的程序或脚本,程序或脚本输出的计时器任务名称。
S203:获取计时器任务名称对应的目标计时器任务;。
在本步骤中,可以包括在预设的存储位置或执行时长监测指令对应的存储位置,查找名称为计时器任务名称的计时器任务,若查找到则确定为目标计时器任务,若未查找到,则创建名称为计时器任务名称的计时器任务,作为目标计时器任务,并启动目标计时器任务。
其中,创建计时器任务可以包括采用命令、脚本等控制计时器生成计时器任务。生成计时器任务的计时器可以是在接收到执行时长监测指令后,根据执行时长监测指令创建的。
S204:确定目标计时器任务的计时状态。
在本步骤中,可以包括查看计时器任务运行日志、查找计时器任务的返回值等方式确定目标计时器任务的计时状态。
具体地,可以包括查找计时器任务名称对应的计时器任务运行日志,若运行日志中只有开始计时的记录没有结束计时的记录,则计时状态为正在计时,若运行日志中没有开始计时的记录,则计时状态为未开始记录,若运行日志中有结束计时的记录,则为计时完成,等待下一次计时。查找计时器任务的返回值,则是根据计时器任务名称,查找是否有对应的返回值,根据是否有返回值,以及计时器任务的类型,确定计时器任务是否正在运行。若目标计时器任务是在步骤S203中创建的,则可以直接确定计时状态为未计时,在计时状态为未计时的情况下,采用预设的函数或方法调用目标计时器任务,完成目标计时器任务的初始化。
S205:若计时状态为正在计时,则直至待执行函数执行结束,控制目标计时器任务停止计时,得到运行时长。
在本步骤中,可以包括在待执行函数调用其他函数,或待执行函数后没有其他函数,且待执行函数的相关进程结束运行的情况下,确定待执行函数执行结束。采用函数或方法控制目标计时器任务停止计时,得到运行时长。
S206:确定待执行函数的关联函数。
在本步骤中,可以包括将待执行函数调用的函数确定为关联函数,也可以包括确定待执行函数是否有子级函数,若有子级函数,则将子级函数确定为关联函数,若没有子级函数,则将待执行函数的父级函数确定为关联函数,若没有关联函数,则直接跳过步骤S207,得到这个待执行函数的运行时长。
S207:将关联函数确定为新的待执行函数,并重新执行确定计时器任务名称至确定关联函数的步骤,直至没有新的关联函数,得到各待执行函数对应的运行时长。
在本步骤中,确定计时器任务名称至确定关联函数的步骤可以是上述步骤S202至步骤S206。
从上述实施例的描述可知,本申请实施例通过在接收执行时长监测指令后,根据被检测程序中的注解信息,确定计时器任务名称,由计时器任务名称获取对应的目标计时器任务,并确定目标计时器任务的计时状态,在计时状态为正在计时的情况下,到待执行函数执行结束,控制目标计时器任务停止计时,得到运行时长,确定新的待执行函数后重新执行上述步骤,得到被注解标记的函数的相关运行时长,由于不需要侵入代码,减少了程序报错的可能性,同时也由于不需要在程序中添加额外的代码,减少了计时本身对程序运行时间的影响。
在一种可能的实现方式中,上述步骤S202中,根据被监测程序中的注解信息,确定被监测程序中待执行函数对应的计时器任务名称,包括:
S2021:若读取的注解信息中包含预设的关键字段,则将注解信息对应的代码行确定为目标代码行。
在本步骤中,可以包括读取注解信息,并在注解信息中查找预设的关键字段,若能够查到关键字段,则将注解信息对应的代码行作为目标代码行。
其中,预设的关键字段可以是工作人员根据经验设置的。
S2022:根据目标代码行,确定待执行函数对应的计时器任务名称。
在本步骤中,可以包括将目标代码行输入预设的名称生成脚本,得到名称生成脚本输出的计时器任务名称。也可以包括将目标代码行中的函数的全限定名称作为计时器任务名称。
其中,名称生成脚本可以是工作人员预先编写的,用于将目标代码行转换为名称。
从上述实施例的描述可知,本申请实施例通过读取注解信息中的关键字段,将注解信息对应的代码行确定为目标代码行,由目标代码行得到待执行函数对应的计时器任务名称,实现对不同代码行使用名称不同的计时器任务,让每个计时器任务都能对不同的代码段进行计时,从而更清晰的得到各代码段的运行时长。
在一种可能的实现方式中,上述步骤S2022中,根据目标代码行,确定待执行函数对应的计时器任务名称,包括:
S2022A:将目标代码行中的全限定方法名称,确定为待执行函数对应的计时器任务名称。
在本步骤中,包括将目标代码行中的方法名称进行转换,得到目标代码行中的全限定方法名称,并将全限定方法名称作为待执行函数对应的计时器任务名称。
从上述实施例的描述可知,本申请实施例通过将目标代码行.的全限定方法名称作为对应计时器任务的唯一标识,使各计时器任务的标识不同,增加计时结果的可读性。
在一种可能的实现方式中,上述步骤S203中,确定目标计时器任务的计时状态,包括:步骤S203A或S203B。
S203A:若能查找到目标计时器任务对应的目标进程,则确定目标计时器任务的计时状态为正在计时,否则确定目标计时器任务的计时状态为未开始计时。
在本步骤中,查找目标计时器任务对应的目标进行,可以包括在进程管理器或内核中查找计时器任务名称对应的进程,若有名称包含计时器任务名称的进程,则确定目标计时器任务的计时状态为正在计时,若未查找到目标计时器任务对应的目标进程,则确定目标计时器任务的计时状态为未开始计时。
S203B:查找目标计时器任务对应的计时日志;根据计时日志确定目标计时器任务的计时状态。
在本步骤中,可以包括查找名称包括计时器任务名称的计时日志,若计时日志中包括开始计时且没有结束计时的记录,则确定目标计时器任务的计时状态为正在计时,若计时日志中没有开始计时的记录,则确定目标计时器任务的计时状态为未开始计时。
从上述实施例的描述可知,本申请实施例通过查找进程或查询日志,得到目标计时器任务对应的计时状态,从而便于后续进行目标计时器任务的控制。
在一种可能的实现方式中,上述步骤S206中,确定待执行函数的关联函数,包括:
S2061:获取待执行函数的子函数,并将子函数确定为关联函数。
在本步骤中,获取待执行函数的子函数,可以包括读取待执行函数后续的代码段,并在后续的代码段中找到待执行函数的子函数,子函数可以由代码格式、函数名确定。
例如,待执行函数为函数A,函数A有子函数:函数B,则将函数B确定为关联函数。
S2062:若待执行函数没有子函数,则获取待执行函数的父函数,并将父函数确定为关联函数。
在本步骤中,获取父函数的方式可以与上述步骤S2061类似,也可以直接将存储的待执行函数的父函数作为关联函数(由于待执行函数是先执行父函数后确定的,因此可以已知待执行函数的父函数)。
从上述实施例的描述可知,本申请实施例通过获取待执行函数的子函数或父函数作为关联函数,实现对待执行函数的更新,从而得到注解信息对应的整块代码段中各方法的分别计时,使计时结果更加清晰。
在一种可能的实现方式中,在上述步骤S207得到各待执行函数对应的运行时长之后,还包括:
S2071:将各待执行函数对应的运行时长相加,得到注解信息对应的总运行时长。
在本步骤中,例如当前共有待执行函数3个:A、B、C,函数B是函数A的子函数,函数C是函数B的子函数,则函数A和函数B会执行两次,因此共有5个运行时长,将这5个运行时长相加,就得到了注解信息对应的总运行时长。又例如,当前共有待执行函数2个:D、E,函数E是函数D的子函数,函数D执行了两次,则共有3个运行时长,将这3个运行时长相加,就得到了注解信息对应的总运行时长。
S2072:输出各待执行函数对应的运行时长及总运行时长。
在本步骤中,可以包括将各待执行函数对应的运行时长及总运行时长显示输出,也可以包括将各待执行函数对应的运行时长及总运行时长发送至终端设备,使终端设备将这些数据显示输出。输出时,可以将总运行时长、各待执行函数对应的运行时长逐行分别输出。
从上述实施例的描述可知,本申请实施例通过计算各待执行函数的运行时长的和,得到总运行时长,将各待执行函数对应的运行时长输出,使不同代码段的运行时长清晰明了的输出,便于工作人员根据运行时长调整代码内容。
图3为本申请实施例提供的计时原理示意图。如图3所示,当前有注解信息对应函数1,函数2是函数1的子函数,函数3是函数2的子函数,在函数1开始运行(函数1下方虚线处)后计时器任务1开始计时,直至函数1调用函数2,计时器任务1停止计时,计时器任务2开始计时,之后函数2调用函数3,计时器任务2停止计时,计时器任务3开始计时,函数3没有子函数,因此再次执行父函数:函数2,计时器任务3停止计时,计时器任务2开始计时,函数2没有调用其他子函数,则执行函数2的父函数:函数1,计时器任务2停止计时,计时器任务1开始计时,函数1执行结束后没有调用新的子函数,且没有父函数,则计时器任务1停止计时,输出计时器任务1、计时器任务2计时得到的两个计时结果,以及计时器任务3计时得到的1个计时结果。
图4为本申请实施例提供的程序运行时长处理装置的结构示意图。如图4所示,程序运行时长处理装置400,包括:指令接收模块401、名称确定模块402、状态确定模块403、状态确定模块404、时长获取模块405、函数确定模块406及时长获得模块407。
指令接收模块401,用于接收执行时长监测指令,其中执行时长监测指令对应被监测程序。
名称确定模块402,用于根据被监测程序中的注解信息,确定被监测程序中待执行函数对应的计时器任务名称。
状态确定模块403,用于获取计时器任务名称对应的目标计时器任务。
状态确定模块404,用于确定目标计时器任务的计时状态。
时长获取模块405,用于若计时状态为正在计时,则直至待执行函数执行结束,控制目标计时器任务停止计时,得到运行时长。
函数确定模块406,用于确定待执行函数的关联函数。
时长获得模块407,用于将关联函数确定为新的待执行函数,并重新执行确定计时器任务名称至确定关联函数的步骤,直至没有新的关联函数,得到各待执行函数对应的运行时长。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
在一种可能的实现方式中,名称确定模块402,具体用于若读取的注解信息中包含预设的关键字段,则将注解信息对应的代码行确定为目标代码行。根据目标代码行,确定待执行函数对应的计时器任务名称。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
在一种可能的实现方式中,名称确定模块402,具体用于将目标代码行中的全限定方法名称,确定为待执行函数对应的计时器任务名称。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
在一种可能的实现方式中,状态确定模块404,具体用于若能查找到目标计时器任务对应的目标进程,则确定目标计时器任务的计时状态为正在计时,否则确定目标计时器任务的计时状态为未开始计时。或,查找目标计时器任务对应的计时日志。根据计时日志确定目标计时器任务的计时状态。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
在一种可能的实现方式中,函数确定模块406,具体用于获取待执行函数的子函数,并将子函数确定为关联函数。若待执行函数没有子函数,则获取待执行函数的父函数,并将父函数确定为关联函数。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
在一种可能的实现方式中,程序运行时长处理装置400,还包括:时长输出模块408。
时长输出模块408,用于将各待执行函数对应的运行时长相加,得到注解信息对应的总运行时长。输出各待执行函数对应的运行时长及总运行时长。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
为了实现上述实施例,本申请实施例还提供了一种电子设备。
参考图5,其示出了适于用来实现本申请实施例的电子设备500的结构示意图,该电子设备500可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable MediaPlayer,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理器(例如中央处理器、图形处理器等)501,以及与处理器通信连接的存储器502,其可以根据存储在存储器502中的程序、计算机执行指令或者从存储装置508加载到随机访问存储器(Random Access Memory,简称RAM)503中的程序而执行各种适当的动作和处理,实现上述任一实施例中的程序运行时长处理方法,其中存储器可以是只读存储器(Read Only Memory,简称ROM)。在RAM503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、存储器502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从存储器502被安装。在该计算机程序被处理装置501执行时,执行本申请实施例的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读存储介质可以是计算机可读信号介质或者计算机存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该模块本身的限定,例如,指令接收模块还可以被描述为“时长监测指令接收模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现上述任一实施例中的程序运行时长处理方法的技术方案,其实现原理以及有益效果与程序运行时长处理方法的实现原理及有益效果类似,可参见程序运行时长处理方法的实现原理及有益效果,此处不再进行赘述。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现上述任一实施例中的程序运行时长处理方法的技术方案,其实现原理以及有益效果与程序运行时长处理方法的实现原理及有益效果类似,可参见程序运行时长处理方法的实现原理及有益效果,此处不再进行赘述。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种程序运行时长处理方法,其特征在于,包括:
接收执行时长监测指令,其中所述执行时长监测指令对应被监测程序;
根据所述被监测程序中的注解信息,确定所述被监测程序中待执行函数对应的计时器任务名称;
获取所述计时器任务名称对应的目标计时器任务;
确定所述目标计时器任务的计时状态;
若所述计时状态为正在计时,则直至所述待执行函数执行结束,控制所述目标计时器任务停止计时,得到运行时长;
确定所述待执行函数的关联函数;
将所述关联函数确定为新的待执行函数,并重新执行确定计时器任务名称至确定关联函数的步骤,直至没有新的关联函数,得到各待执行函数对应的运行时长。
2.根据权利要求1所述的方法,其特征在于,所述根据所述被监测程序中的注解信息,确定所述被监测程序中待执行函数对应的计时器任务名称,包括:
若读取的注解信息中包含预设的关键字段,则将所述注解信息对应的代码行确定为目标代码行;
根据所述目标代码行,确定待执行函数对应的计时器任务名称。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标代码行,确定待执行函数对应的计时器任务名称,包括:
将所述目标代码行中的全限定方法名称,确定为待执行函数对应的计时器任务名称。
4.根据权利要求1所述的方法,其特征在于,所述确定所述目标计时器任务的计时状态,包括:
若能查找到所述目标计时器任务对应的目标进程,则确定所述目标计时器任务的计时状态为正在计时,否则确定目标计时器任务的计时状态为未开始计时;或,
查找所述目标计时器任务对应的计时日志;根据所述计时日志确定所述目标计时器任务的计时状态。
5.根据权利要求1所述的方法,其特征在于,所述确定所述待执行函数的关联函数,包括:
获取所述待执行函数的子函数,并将所述子函数确定为关联函数;
若所述待执行函数没有子函数,则获取所述待执行函数的父函数,并将所述父函数确定为关联函数。
6.根据权利要求1至5任一项所述的方法,其特征在于,在所述得到各待执行函数对应的运行时长之后,还包括:
将各待执行函数对应的运行时长相加,得到所述注解信息对应的总运行时长;
输出各待执行函数对应的运行时长及所述总运行时长。
7.一种程序运行时长处理装置,其特征在于,包括:
指令接收模块,用于接收执行时长监测指令,其中所述执行时长监测指令对应被监测程序;
名称确定模块,用于根据所述被监测程序中的注解信息,确定所述被监测程序中待执行函数对应的计时器任务名称;
状态确定模块,用于获取所述计时器任务名称对应的目标计时器任务;
状态确定模块,用于确定所述目标计时器任务的计时状态;
时长获取模块,用于若所述计时状态为正在计时,则直至所述待执行函数执行结束,控制所述目标计时器任务停止计时,得到运行时长;
函数确定模块,用于确定所述待执行函数的关联函数;
时长获得模块,用于将所述关联函数确定为新的待执行函数,并重新执行确定计时器任务名称至确定关联函数的步骤,直至没有新的关联函数,得到各待执行函数对应的运行时长。
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1至5中任一项所述的程序运行时长处理方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至5中任一项所述的程序运行时长处理方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至5中任一项所述的程序运行时长处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410294539.6A CN118113580A (zh) | 2024-03-14 | 2024-03-14 | 程序运行时长处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410294539.6A CN118113580A (zh) | 2024-03-14 | 2024-03-14 | 程序运行时长处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118113580A true CN118113580A (zh) | 2024-05-31 |
Family
ID=91213857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410294539.6A Pending CN118113580A (zh) | 2024-03-14 | 2024-03-14 | 程序运行时长处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118113580A (zh) |
-
2024
- 2024-03-14 CN CN202410294539.6A patent/CN118113580A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475298B (zh) | 任务处理方法、装置、设备及存储介质 | |
CN109523187B (zh) | 任务调度方法、装置和设备 | |
CN111897740B (zh) | 用户界面的测试方法、装置、电子设备及计算机可读介质 | |
US20230087168A1 (en) | Baseline monitoring method and apparatus, readable medium, and electronic device | |
CN111367516B (zh) | 应用界面生成方法、装置及电子设备 | |
CN112684968A (zh) | 页面展示方法、装置、电子设备和计算机可读介质 | |
CN113741756A (zh) | 信息处理方法、装置、终端和存储介质 | |
CN112954056B (zh) | 监控数据处理方法、装置、电子设备及存储介质 | |
CN113220281A (zh) | 一种信息生成方法、装置、终端设备及存储介质 | |
CN111367783B (zh) | 应用程序的测试方法、装置及电子设备 | |
CN111752644A (zh) | 接口模拟方法、装置、设备及存储介质 | |
CN110727558A (zh) | 信息提示方法、装置、存储介质及电子设备 | |
CN118113580A (zh) | 程序运行时长处理方法、装置、设备及存储介质 | |
CN117251355A (zh) | 性能测试方法、装置、设备、计算机可读存储介质及产品 | |
CN111984496B (zh) | 一种监控栈内存泄露的方法、装置、介质和电子设备 | |
CN111309323B (zh) | 参数初始化方法、装置和电子设备 | |
CN111399902B (zh) | 客户端源文件处理方法、装置、可读介质与电子设备 | |
WO2020224295A1 (zh) | 用于管理信息的方法、装置和系统 | |
CN111538577A (zh) | 程序执行控制的装置及方法、终端和存储介质 | |
CN115827415B (zh) | 系统进程性能测试方法、装置、设备和计算机介质 | |
CN113138883A (zh) | 消息处理方法、装置、存储介质及电子设备 | |
CN111562913B (zh) | 视图组件的预创建方法、装置、设备及计算机可读介质 | |
CN112905167B (zh) | 应用操作方法、装置和电子设备 | |
CN113448550B (zh) | 实现类的收集管理方法、装置、电子设备及计算机介质 | |
CN111461227B (zh) | 样本生成方法、装置、电子设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |