CN117950872A - 基于线程的消耗时间的确定方法、装置、设备及存储介质 - Google Patents
基于线程的消耗时间的确定方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117950872A CN117950872A CN202410154097.5A CN202410154097A CN117950872A CN 117950872 A CN117950872 A CN 117950872A CN 202410154097 A CN202410154097 A CN 202410154097A CN 117950872 A CN117950872 A CN 117950872A
- Authority
- CN
- China
- Prior art keywords
- request
- thread
- time
- determining
- processed
- 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
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000003860 storage Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 98
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 157
- 230000004044 response Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012512 characterization method Methods 0.000 claims description 4
- 230000001186 cumulative effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 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
本公开提供了一种基于线程的消耗时间的确定方法、装置、设备及存储介质,涉及计算机领域,尤其涉及大搜索中的网页搜索和分布式系统领域。具体实现方案为:接收待处理请求,并确定所述待处理请求对应的线程;其中,所述线程用于处理待处理请求,所述线程中记录有线程在中央处理器上的累计消耗时间,所述累计消耗时间表征线程从创建开始,至当前时刻所累计的消耗时间,所述消耗时间表征中央处理器的算力消耗;响应于所述待处理请求的调用指令,根据所述线程在中央处理器上的累计消耗时间,确定所述待处理请求对应的消耗时间。通过线程对CPU的累计消耗时间,确定待处理请求对CPU的消耗时间,提高消耗时间的确定精度。
Description
技术领域
本公开涉及计算机领域中的大搜索领域,具体应用在网页搜索和分布式系统领域,尤其涉及一种基于线程的消耗时间的确定方法、装置、设备及存储介质。
背景技术
在大规模的分布式搜索系统中,不同的请求由于执行策略不同,对CPU(CentralProcessing Unit,中央处理器)的算力消耗也不同。通过确定请求在CPU上的算力消耗,可以对请求的处理进行优化。CPU上的算力消耗可以通过在CPU上的消耗时间表示。
目前,难以精准地获取到不同类型的请求在CPU上的算力消耗。如果能做到精确地衡量不同类型的请求的CPU算力消耗,就可以针对性地对不同请求进行优化,实现对计算资源的有效利用。
发明内容
本公开提供了一种基于线程的消耗时间的确定方法、装置、设备及存储介质。
根据本公开的第一方面,提供了一种基于线程的消耗时间的确定方法,包括:
接收待处理请求,并确定所述待处理请求对应的线程;其中,所述线程用于处理待处理请求,所述线程中记录有线程在中央处理器上的累计消耗时间,所述累计消耗时间表征线程从创建开始,至当前时刻所累计的消耗时间,所述消耗时间表征中央处理器的算力消耗;
响应于所述待处理请求的调用指令,根据所述线程在中央处理器上的累计消耗时间,确定所述待处理请求对应的消耗时间。
根据本公开的第二方面,提供了一种基于线程的消耗时间的确定装置,包括:
第一确定单元,用于接收待处理请求,并确定所述待处理请求对应的线程;其中,所述线程用于处理待处理请求,所述线程中记录有线程在中央处理器上的累计消耗时间,所述累计消耗时间表征线程从创建开始,至当前时刻所累计的消耗时间,所述消耗时间表征中央处理器的算力消耗;
第二确定单元,用于响应于所述待处理请求的调用指令,根据所述线程在中央处理器上的累计消耗时间,确定所述待处理请求对应的消耗时间。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,该计算机程序被处理器执行时实现第一方面所述的方法。
根据本公开的技术,提高了对线程中的待处理请求的CPU消耗时间的确定精度。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是相关技术中应用层面感知处理请求的时间的示意图;
图2是根据本公开实施例提供的一种基于线程的消耗时间的确定方法的流程示意图;
图3是根据本公开实施例提供的待处理请求的分配示意图;
图4是根据本公开实施例提供的一种基于线程的消耗时间的确定方法的流程示意图;
图5是根据本公开实施例提供的一种基于线程的消耗时间的确定装置的结构框图;
图6是根据本公开实施例提供的一种基于线程的消耗时间的确定装置的结构框图;
图7是用来实现本公开实施例的基于线程的消耗时间的确定方法的电子设备的框图;
图8是用来实现本公开实施例的基于线程的消耗时间的确定方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在大规模的分布式搜索系统中,不同query(请求)由于执行策略不同,消耗的CPU算力也不同。由于难以精准地获取到不同类型的query在各服务上的算力消耗,所以难以对query进行具体的优化方向的指导。如果能做到精确地衡量不同类型query的CPU算力消耗,就可以针对性地对不同类型的query进行优化,从而实现在大规模系统下,提高资源的利用率,为企业节省可观的成本。
对CPU的算力消耗通常以CPU的消耗时间进行衡量。目前,通常是将应用层面感知到的处理query的时间,确定为CPU的消耗时间。但是,在对query进行处理时,query需要在预设的就绪队列中进行等待,当轮到自己时才会投入到CPU中执行。在CPU上执行完一个时间片后,如果query还没有完成任务,则重新投入就绪队列,等待下次执行。这使得应用层面感知到的处理query的时间包括等待的时间和执行的时间,即,得到CPU的消耗时间不准确。图1为在应用层面感知处理请求的时间的示意图。图1中,一个query先在就绪队列中等待CPU执行,轮到自己执行时,得到一个时间片,在该时间片内投入CPU执行。在CPU上执行完一个时间片后,如果query任务还没有完成,就会再次投入到就绪队列,等待下次轮到自己执行。可以看到,一个query任务在应用层面感知到的执行时间,和真正花在CPU上的执行时间是不一样的。
还可以在测试环境中,对于某一类型的query进行批量处理,确定多个query的处理时间,从而估算出该类型的单个query的处理时间。但是,这种方式限于测试环境,操作繁琐,无法针对单个query进行CPU消耗时间的确定,影响CPU消耗时间的确定精度和效率。
本公开提供一种基于线程的消耗时间的确定方法、装置、设备及存储介质,应用于计算机领域中的大搜索领域,尤其是网页搜索和分布式系统领域,以提高CPU消耗时间的确定精度。
需要说明的是,本实施例中的数据并不是针对某一特定用户,并不能反映出某一特定用户的个人信息。需要说明的是,本实施例中的数据来自于公开数据集。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
为使读者更深刻地理解本公开的实现原理,现结合以下图2-图8对实施例进行进一步细化。
图2为根据本公开实施例提供的一种基于线程的消耗时间的确定方法的流程示意图,该方法可以由一种基于线程的消耗时间的确定装置执行。如图2所示,该方法包括以下步骤:
S201、接收待处理请求,并确定待处理请求对应的线程;其中,线程用于处理待处理请求,线程中记录有线程在中央处理器上的累计消耗时间,累计消耗时间表征线程从创建开始,至当前时刻所累计的消耗时间,消耗时间表征中央处理器的算力消耗。
示例性地,将等待被CPU执行的任务确定为待处理请求,待处理请求可以分为不同的类型,例如,可以包括手机端或电脑端的请求,也可以包括真实用户发起的或计算机抓取的请求等。本实施例中,待处理请求可以是搜索请求,例如,可以搜索“某某演过什么电影”,所搜索的问题即为待处理请求。
在接收到待处理请求后,可以为待处理请求分配一个进程,可以预先设置有多个进程,每个待处理请求由其中一个进程进行处理。例如,可以确定各个进程的当前工作状态,将处于空闲状态的进程分配给待处理请求,也可以随机分配一个进程给待处理请求。进程可以是多线程形态,即一个进程中可以包括多个线程。在确定分配给待处理请求的进程后,可以从该进程中确定一个线程,由该线程处理待处理请求。例如,可以随机选择一条线程来处理待处理请求,也可以确定每条线程的当前工作状态,将处于空闲状态线程分配给待处理请求。
线程用于处理待处理请求,且每条线程一次处理一个请求。即在线程处理某个请求的过程中,该线程不会处理其他的请求,当处理完当前的请求后,再承接新的待处理请求。每条线程都记录有自身在CPU上的累计消耗时间,累计消耗时间表征线程从创建开始,至当前时刻所累计的CPU消耗时间,即,线程从第一次工作开始,在CPU上执行请求任务的时间。CPU的消耗时间可以表征CPU的算力消耗。线程每次在CPU上执行请求任务时,累计消耗时间可以实时更新,从而记录当前时刻的累计消耗时间。
S202、响应于待处理请求的调用指令,根据线程在中央处理器上的累计消耗时间,确定待处理请求对应的消耗时间。
示例性地,当待处理请求被线程进行处理时,可以发出待处理请求的调用指令,即,针对待处理请求的调用指令可以表示待处理请求被进行处理。也就是说,在处理待处理请求时,可以发出针对待处理请求的调用指令,表示待处理请求已经开始被处理,可以开始确定该待处理请求所对应的CPU消耗时间。
在响应到待处理请求的调用指令后,获取线程在CPU上的累计消耗时间。例如,可以在待处理请求的处理过程中,实时获取线程的累计消耗时间,即可以得到多个累计消耗时间。根据获取到的累计消耗时间,确定待处理请求对应的消耗时间。本实施例中,可以预设CPU消耗时间的计算公式,将获取到的多个累计消耗时间,代入到预设的计算公式中,得到待处理请求所消耗的CPU的时间。本实施例对预设的计算公式不做具体限定,例如,可以将获取到第一个累计消耗时间和最后一个累计消耗时间相减,得到的差值即为待处理请求所对应的CPU消耗时间。
CPU消耗时间可以用于了解请求的处理情况,通过获取到不同类型的请求在CPU上的消耗时间,可以为请求的优化方向提供具体的指导,实现有针对性地对不同类型的请求进行优化。在大规模系统下,能够有效节约计算资源,降低处理请求的成本。
图3为待处理请求的分配示意图。图3中,每一个query为一个待处理请求,一个进程可以接收n个query,进程中包括n个线程,每个线程接收一个query。即,进程所接收的多个query分别分配给各个线程。
本公开实施例中,每接收到一个待处理请求,就为该待处理请求确定一个对应的线程,由该线程处理待处理请求。线程中实时记录有自身在CPU执行时的累计消耗时间,累计消耗时间可以表征线程从创建开始,至当前时刻所累计的CPU消耗时间。当响应到待处理请求的调用指令后,获取线程的累计消耗时间,根据线程的累计消耗时间,确定待处理请求对应的CPU消耗时间,即得到处理待处理请求所消耗的CPU的算力。实现了针对不同的待处理请求,都可以精确地确定出CPU消耗时间,而不是将应用层面感知到的处理请求的时间作为CPU消耗时间。也不需要针对某种请求类型,批量分发多个请求进行处理后,再计算出单个请求的CPU消耗时间,有效提高了CPU消耗时间的确定精度和精度。
图4为本公开实施例提供的一种基于线程的消耗时间的确定方法的流程示意图。
本实施例中,响应于待处理请求的调用指令,根据线程在中央处理器上的累计消耗时间,确定待处理请求对应的消耗时间,可细化为:响应到待处理请求在线程上开始调用,确定在开始调用的时刻下,线程在中央处理器上的累计消耗时间,为第一消耗时间;响应到待处理请求在线程上结束调用,确定在结束调用的时刻下,线程在中央处理器上的累计消耗时间,为第二消耗时间;根据第一消耗时间和第二消耗时间,确定待处理请求对应的消耗时间。
如图4所示,该方法包括以下步骤:
S401、接收待处理请求,并确定待处理请求对应的线程;其中,线程用于处理待处理请求,线程中记录有线程在中央处理器上的累计消耗时间,累计消耗时间表征线程从创建开始,至当前时刻所累计的消耗时间,消耗时间表征中央处理器的算力消耗。
示例性地,本步骤可以参见上述步骤S201,不再赘述。
S402、响应到待处理请求在线程上开始调用,确定在开始调用的时刻下,线程在中央处理器上的累计消耗时间,为第一消耗时间。
示例性地,待处理请求的调用指令可以包括开始调用的指令和结束调用的指令,开始调用是指开始处理待处理请求,结束调用是指待处理请求处理完毕。在待处理请求开始进行处理时,可以响应到待处理请求在线程上开始调用。例如,待处理请求中可以含有一个目标函数,该目标函数被调用可以表示待处理请求开始调用,若响应到目标函数被调用,则确定待处理请求开始进行处理。即,响应待处理请求在线程上开始调用,也就是响应目标函数在线程上开始调用。本实施例中,可以采用eBPF(Extended Berkeley Packet Filter,可扩展伯克利包过滤器)技术,由eBPF内置在内核中的预设逻辑感知目标函数的调用。
在响应到待处理请求在线程上开始调用之后,可以获取当前时刻的累计消耗时间,即,确定在开始调用的时刻下,线程在CPU上的累计消耗时间,作为第一消耗时间。
本实施例中,响应到待处理请求在线程上开始调用,确定在开始调用的时刻下,线程在中央处理器上的累计消耗时间,包括:确定待处理请求中的目标函数;其中,目标函数表征在调用目标函数时,对待处理请求进行处理;响应到目标函数在线程上开始调用,确定在开始调用的时刻下,线程在中央处理器上的累计消耗时间。
具体的,待处理请求中可以存在一个或多个函数,从待处理请求中确定出一个函数,作为目标函数。当目标函数被调用时,表示待处理请求开始被处理。例如,待处理请求中的函数之间存在嵌套关系,可以将最内层的函数确定为目标函数。
每接收到一个待处理请求后,都需要确定该待处理请求的目标函数,对目标函数进行监测,判断目标函数是否被调用。若响应到目标函数被调用,则确定待处理请求开始调用,可以直接获取线程在当前时刻下的累计消耗时间,作为第一消耗时间。
这样设置的有益效果在于,从待处理请求中确定一个目标函数,监测目标函数是否被调用,从而能够确定待处理请求是否被调用,实现对待处理请求的开始调用时刻的精准确定,进而提高CPU消耗时间的确定精度。
本实施例中,确定待处理请求中的目标函数,包括:确定待处理请求中的请求标识;其中,请求标识用于表征待处理请求;根据请求标识在待处理请求中所处的位置,确定待处理请求中的目标函数。
具体的,每个待处理请求都对应有唯一的请求标识,通过请求标识来表征待处理请求。请求标识记录在待处理请求中,是待处理请求在处理时所使用的计算参数之一。
在收到待处理请求后,从待处理请求中获取请求标识,确定请求标识的所在位置。请求标识作为计算参数,可以位于某一个函数中,在调用该函数时,可以使用请求标识对该函数进行计算。确定请求标识的所在位置可以是指,确定请求标识所在的函数。可以根据请求标识在待处理请求中所处的函数,确定待处理请求中的目标函数。例如,可以将请求标识所处的函数,确定为目标函数。
这样设置的有益效果在于,请求标识是表示待处理请求身份的唯一标识,通过确定请求标识,可以快速确定出目标函数,从而判断目标函数是否被调用,提高CPU消耗时间的确定效率。
本实施例中,根据请求标识在待处理请求中所处的位置,确定待处理请求中的目标函数,包括:根据请求标识在待处理请求中所处的位置,确定请求标识所在的函数,为待确认函数;若请求标识在待确认函数中位于预设位置处,则确定待确认函数为目标函数。
具体的,确定请求标识在待处理请求中所处的位置,根据请求标识在待处理请求中所处的位置,确定请求标识所在的函数。例如,可以确定请求标识的所在位置位于哪个函数内,即确定请求标识是哪个函数的计算参数,将该函数确定为待确认函数。
确定请求标识在待确认函数中的位置,请求标识在待确认函数中的位置是指,请求标识是待确认函数中所体现的第几个计算参数。即,确定请求标识的字符在待确认函数中的字符位置。预先设置一个预设位置,例如,预设位置为请求标识是待确认函数中的第一个计算参数。判断请求标识是否位于预设位置处,若是,则确定待确认函数为目标函数。例如,判断请求标识是否为待确认函数中的第一个计算参数,若是,则将待确认函数确定为目标函数;若不是,则确定待确认函数不是目标函数。
这样设置的有益效果在于,针对目标函数设置一个条件,该条件要求请求标识是目标函数中的第一个计算参数,有利于根据该条件快速确定目标函数,提高CPU消耗时间的确定精度和效率。
本实施例中,该方法还包括:若确定请求标识在待确认函数中不位于预设位置处,则在请求标识外构建一个函数,为目标函数;其中,请求标识在所构建的函数中位于预设位置处。
具体的,若确定请求标识在待确认函数中不位于预设位置处,例如,确定请求标识不是待确认函数中的第一个计算参数,则可以在请求标识外构建一个函数,使请求标识在新构建的函数中位于预设位置处,从而将新构建的函数确定为目标函数。
在请求标识外构建一个函数,不改变原先的待确认函数的计算逻辑。例如,待确认函数为foo(a+qid+b),其中,qid为请求标识,a和b为foo()函数中的另外两个计算参数,qid不是foo()函数中的第一个计算参数,可以在qid外侧添加一个函数,例如,添加一个bar()函数,得到foo(a+bar(qid+b)),目标函数为bar()函数。
这样设置的有益效果在于,若在待确认函数中,请求标识不是第一个计算参数,则可以对待确认函数进行微调,使请求标识作为新函数的第一个参数,这种调整方式的成本非常小,有利于提高CPU消耗时间的确定效率。
本实施例中,响应到目标函数在线程上开始调用,确定在开始调用的时刻下,线程在中央处理器上的累计消耗时间,包括:响应到目标函数在线程上开始调用,获取线程对应的结构化数据;其中,结构化数据表征线程的工作情况;从结构化数据中获取预设字段下的字段值,为开始调用的时刻下,线程在中央处理器上的累计消耗时间。
具体的,每当目标函数被调用时,由eBPF内置在内核中的逻辑感知到,然后自动执行一段自定义逻辑,该自定义逻辑用于获取线程在CPU上的累计消耗时间。每个线程都对应有一个结构化数据,该结构化数据可以表征线程的工作情况。在该结构化数据中包括多个字段,其中一个字段记录了到当前时刻为止,线程在CPU上累计执行的纯时间,即累计消耗时间。
在确定目标函数在线程上开始调用后,获取线程对应的结构化数据,从结构化数据中获取预设字段下的字段值。预设字段即为表征累计消耗时间的字段,预设字段下的字段值即为当前时刻下,线程在CPU上的累计消耗时间。例如,预设字段为“se.sum_exec_runtime”,则可以获取当前时刻下的“se.sum_exec_runtime”的值。
这样设置的有益效果在于,通过获取结构化数据,可以快速得到当前时刻的累计消耗时间,即确定刚开始处理待处理请求时,线程的累计消耗时间,便于后续根据该累计消耗时间,确定处理整个待处理请求所消耗的CPU时间,提高CPU消耗时间的确定效率和精度。
本实施例中,该方法还包括:获取待处理请求的请求标识和线程的线程标识;其中,线程标识用于表征线程;将请求标识和线程标识进行关联存储。
具体的,每条线程都对应有唯一的线程标识,在确定待处理请求对应的线程后,确定该线程的线程标识。在待处理请求被处理之前,待处理请求中包括请求标识,在待处理请求的处理过程中,请求标识作为计算参数代入到计算中,请求参数发生了变形,无法再从待处理请求中获取到请求标识。因此,可以在待处理请求开始调用时,从待处理请求中获取请求标识,并将请求标识和线程标识进行关联存储,表明线程标识所表征的线程正在处理请求标识所表征的待处理请求。
这样设置的有益效果在于,建立请求标识和线程标识之间的映射关系,便于后续对待处理请求的处理情况进行记录,有利于用户进行查看。
S403、响应到待处理请求在线程上结束调用,确定在结束调用的时刻下,线程在中央处理器上的累计消耗时间,为第二消耗时间。
示例性地,当待处理请求在线程上结束调用,即待处理请求处理完毕后,再次获取线程在当前时刻下的累计消耗时间。即,确定在结束调用的时刻下,线程在CPU上的累计消耗时间,作为第二消耗时间。
线程的累计消耗时间可以随着在CPU上的执行进行实时更新。本实施例中,不需要实时获取累计消耗时间,只需要在待处理请求开始调用和结束调用时分别获取一次,即获取两次累计消耗时间。
本实施例中,响应到待处理请求在线程上结束调用,确定在结束调用的时刻下,线程在中央处理器上的累计消耗时间,包括:响应到目标函数在线程上结束调用,获取在结束调用的时刻下,线程对应的结构化数据;从结构化数据中获取预设字段下的字段值,为结束调用的时刻下,线程在中央处理器上的累计消耗时间。
具体的,每当目标函数被调用时,可以由eBPF内置在内核中的逻辑感知到,然后获取开始调用时刻的累计消耗时间。每当目标函数离开时,也由eBPF内置在内核中的逻辑感知到,然后获取结束调用时刻的累计消耗时间。目标函数离开即表示目标函数在线程上结束调用,待处理请求处理完毕。响应到目标函数在线程上结束调用,即为响应到待处理请求在线程上结束调用。将结束调用时刻线程的累计消耗时间,确定为第二消耗时间。
第二消耗时间的确定过程与第一消耗时间的确定过程相同,响应到目标函数在线程上结束调用后,获取线程对应的结构化数据。从结构化数据中获取预设字段下的字段值,作为第二消耗时间。例如,可以再次获取“se.sum_exec_runtime”字段下的值,作为第二消耗时间。
这样设置的有益效果在于,当目标函数离开时,根据结构化数据,快速确定到当前时刻为止,线程在CPU上累计执行的第二消耗时间,从而根据第一消耗时间和第二消耗时间,确定待处理请求的CPU消耗时间,提高CPU消耗时间的确定效率。
S404、根据第一消耗时间和第二消耗时间,确定待处理请求对应的消耗时间。
示例性地,在确定第一消耗时间和第二消耗时间后,根据第一消耗时间和第二消耗时间,确定在处理待处理请求的过程中的CPU消耗时间。例如,可以预设第一消耗时间和第二消耗时间的权重,根据预设的权重,对第一消耗时间和第二消耗时间进行权值计算,得到待处理请求对应的消耗时间。
本实施例中,对于任意一个待处理请求,确定线程在两个时刻下的累计消耗时间,即可以针对该待处理请求确定CPU的消耗时间,计算过程简单,可以准确测量出在单个请求的粒度下的真实CPU消耗,无侵入地在生产环境执行该过程,提高确定CPU消耗时间的灵活性和效率。
本实施例中,根据第一消耗时间和第二消耗时间,确定待处理请求对应的消耗时间,包括:将第二消耗时间减去第一消耗时间,得到在开始调用的时刻至结束调用的时刻之间,线程对应的消耗时间;根据请求标识和线程标识之间的关联关系,将线程对应的消耗时间,确定为待处理请求对应的消耗时间。
具体的,第二消耗时间所对应的时刻在第一消耗时间所对应的时刻之后,第二消耗时间一定大于第一消耗时间。因此,可以将第二消耗时间减去第一消耗时间,得到的差值即为线程在开始调用的时刻至结束调用的时刻之间的CPU消耗时间。
线程在开始调用的时刻至结束调用的时刻之间在处理待处理请求,因此,第二消耗时间减去第一消耗时间得到的差值,即为待处理请求对应的消耗时间。
待处理请求在结束调用后,请求标识不存在,但是线程标识没有发生变化。可以根据请求标识和线程标识之间的关联关系,确定线程的线程标识所对应的请求标识,即确定所得到的差值是对应的哪个待处理请求,从而将线程对应的消耗时间,确定为该待处理请求对应的消耗时间。
这样设置的有益效果在于,将线程在两个时刻的消耗时间相减,得到线程在这两个时刻内的CPU消耗时间,从而确定待处理请求的CPU消耗时间,实现对待处理请求的CPU消耗时间进行针对性地确定,提高确定的灵活性。
本实施例中,该方法还包括:获取待处理请求的日志数据;其中,日志数据用于表征请求的处理情况;将待处理请求的请求标识、消耗时间、以及日志数据进行关联存储。
具体的,在待处理请求的处理过程中,可以实时生成待处理请求的日志数据。日志数据可以表示待处理请求的处理情况,例如,日志数据中可以包括待处理请求的处理时间、处理进度、处理结果等。可以通过SDK(Software Development Kit,软件开发工具包)或者sidecar进行日志数据的捕获,并对日志数据进行存储。Sidecar是一个独立的进程,集成在业务容器中,用于获取日志数据。在确定待处理请求的消耗时间后,可以将待处理请求的请求标识、消耗时间、以及日志数据等进行关联存储,便于后续查看。
这样设置的有益效果在于,基于获取到的CPU消耗时间和日志数据,可以建立待处理请求的算力消耗的数据表,即建立CPU消耗时间和日志数据的关联关系。从而在指导大规模分布式环境的请求优化中,起到重要作用,提高请求优化的效率和精度。
本公开实施例中,每接收到一个待处理请求,就为该待处理请求确定一个对应的线程,由该线程处理待处理请求。线程中实时记录有自身在CPU执行时的累计消耗时间,累计消耗时间可以表征线程从创建开始,至当前时刻所累计的CPU消耗时间。当响应到待处理请求的调用指令后,获取线程的累计消耗时间,根据线程的累计消耗时间,确定待处理请求对应的CPU消耗时间,即得到处理待处理请求所消耗的CPU的算力。实现了针对不同的待处理请求,都可以精确地确定出CPU消耗时间,而不是将应用层面感知到的处理请求的时间作为CPU消耗时间。也不需要针对某种请求类型,批量分发多个请求进行处理后,再计算出单个请求的CPU消耗时间,有效提高了CPU消耗时间的确定精度和精度。
图5为本公开实施例提供的一种基于线程的消耗时间的确定装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图5,基于线程的消耗时间的确定装置500包括:第一确定单元501和第二确定单元502。
第一确定单元501,用于接收待处理请求,并确定所述待处理请求对应的线程;其中,所述线程用于处理待处理请求,所述线程中记录有线程在中央处理器上的累计消耗时间,所述累计消耗时间表征线程从创建开始,至当前时刻所累计的消耗时间,所述消耗时间表征中央处理器的算力消耗;
第二确定单元502,用于响应于所述待处理请求的调用指令,根据所述线程在中央处理器上的累计消耗时间,确定所述待处理请求对应的消耗时间。
图6为本公开实施例提供的一种基于线程的消耗时间的确定装置的结构框图,如图6所示,基于线程的消耗时间的确定装置600包括第一确定单元601和第二确定单元602,其中,第二确定单元602包括第一确定模块6021、第二确定模块6022和第三确定模块6023。
第一确定模块6021,用于响应到待处理请求在线程上开始调用,确定在开始调用的时刻下,所述线程在中央处理器上的累计消耗时间,为第一消耗时间;
第二确定模块6022,用于响应到所述待处理请求在所述线程上结束调用,确定在结束调用的时刻下,所述线程在中央处理器上的累计消耗时间,为第二消耗时间;
第三确定模块6023,用于根据所述第一消耗时间和所述第二消耗时间,确定所述待处理请求对应的消耗时间。
一个示例中,第一确定模块6021,包括:
目标确定子模块,用于确定所述待处理请求中的目标函数;其中,所述目标函数表征在调用目标函数时,对待处理请求进行处理;
开始调用子模块,用于响应到所述目标函数在线程上开始调用,确定在开始调用的时刻下,所述线程在中央处理器上的累计消耗时间。
一个示例中,目标确定子模块,包括:
标识确定次模块,用于确定所述待处理请求中的请求标识;其中,所述请求标识用于表征待处理请求;
函数确定次模块,用于根据所述请求标识在所述待处理请求中所处的位置,确定所述待处理请求中的目标函数。
一个示例中,函数确定次模块,具体用于:
根据所述请求标识在所述待处理请求中所处的位置,确定所述请求标识所在的函数,为待确认函数;
若所述请求标识在所述待确认函数中位于预设位置处,则确定所述待确认函数为所述目标函数。
一个示例中,函数确定次模块,还具体用于:
若确定所述请求标识在所述待确认函数中不位于预设位置处,则在所述请求标识外构建一个函数,为所述目标函数;其中,所述请求标识在所构建的函数中位于预设位置处。
一个示例中,开始调用子模块,具体用于:
响应到所述目标函数在线程上开始调用,获取所述线程对应的结构化数据;其中,所述结构化数据表征线程的工作情况;
从所述结构化数据中获取预设字段下的字段值,为开始调用的时刻下,所述线程在中央处理器上的累计消耗时间。
一个示例中,第二确定模块6022,包括:
数据获取子模块,用于响应到所述目标函数在线程上结束调用,获取在结束调用的时刻下,所述线程对应的结构化数据;
字段获取子模块,用于从所述结构化数据中获取预设字段下的字段值,为结束调用的时刻下,所述线程在中央处理器上的累计消耗时间。
一个示例中,还包括:
标识获取单元,用于获取所述待处理请求的请求标识和所述线程的线程标识;其中,所述线程标识用于表征线程;
第一存储单元,用于将所述请求标识和所述线程标识进行关联存储。
一个示例中,第三确定模块6023,包括:
时间相减子模块,用于将所述第二消耗时间减去所述第一消耗时间,得到在开始调用的时刻至结束调用的时刻之间,所述线程对应的消耗时间;
时间确定子模块,用于根据请求标识和线程标识之间的关联关系,将所述线程对应的消耗时间,确定为所述待处理请求对应的消耗时间。
一个示例中,还包括:
日志获取单元,用于获取所述待处理请求的日志数据;其中,所述日志数据用于表征请求的处理情况;
第二存储单元,用于将所述待处理请求的请求标识、消耗时间、以及日志数据进行关联存储。
根据本公开的实施例,本公开还提供了一种电子设备。
图7为本公开实施例提供的一种电子设备的结构框图,电子设备可以是终端设备或服务器,如图7所示,电子设备700包括:至少一个处理器702;以及与所述至少一个处理器702通信连接的存储器701;其中,存储器存储有可被所述至少一个处理器702执行的指令,所述指令被所述至少一个处理器702执行,以使所述至少一个处理器702能够执行本公开的基于线程的消耗时间的确定方法。
电子设备700还包括接收器703和发送器704。接收器703用于接收其他设备发送的指令和数据,发送器704用于向外部设备发送指令和数据。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
根据本公开的实施例,本公开还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如基于线程的消耗时间的确定方法。例如,在一些实施例中,基于线程的消耗时间的确定方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的基于线程的消耗时间的确定方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于线程的消耗时间的确定方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (25)
1.一种基于线程的消耗时间的确定方法,包括:
接收待处理请求,并确定所述待处理请求对应的线程;其中,所述线程用于处理待处理请求,所述线程中记录有线程在中央处理器上的累计消耗时间,所述累计消耗时间表征线程从创建开始,至当前时刻所累计的消耗时间,所述消耗时间表征中央处理器的算力消耗;
响应于所述待处理请求的调用指令,根据所述线程在中央处理器上的累计消耗时间,确定所述待处理请求对应的消耗时间。
2.根据权利要求1所述的方法,其中,响应于所述待处理请求的调用指令,根据所述线程在中央处理器上的累计消耗时间,确定所述待处理请求对应的消耗时间,包括:
响应到待处理请求在线程上开始调用,确定在开始调用的时刻下,所述线程在中央处理器上的累计消耗时间,为第一消耗时间;
响应到所述待处理请求在所述线程上结束调用,确定在结束调用的时刻下,所述线程在中央处理器上的累计消耗时间,为第二消耗时间;
根据所述第一消耗时间和所述第二消耗时间,确定所述待处理请求对应的消耗时间。
3.根据权利要求2所述的方法,其中,响应到待处理请求在线程上开始调用,确定在开始调用的时刻下,所述线程在中央处理器上的累计消耗时间,包括:
确定所述待处理请求中的目标函数;其中,所述目标函数表征在调用目标函数时,对待处理请求进行处理;
响应到所述目标函数在线程上开始调用,确定在开始调用的时刻下,所述线程在中央处理器上的累计消耗时间。
4.根据权利要求3所述的方法,其中,确定所述待处理请求中的目标函数,包括:
确定所述待处理请求中的请求标识;其中,所述请求标识用于表征待处理请求;
根据所述请求标识在所述待处理请求中所处的位置,确定所述待处理请求中的目标函数。
5.根据权利要求4所述的方法,其中,根据所述请求标识在所述待处理请求中所处的位置,确定所述待处理请求中的目标函数,包括:
根据所述请求标识在所述待处理请求中所处的位置,确定所述请求标识所在的函数,为待确认函数;
若所述请求标识在所述待确认函数中位于预设位置处,则确定所述待确认函数为所述目标函数。
6.根据权利要求5所述的方法,还包括:
若确定所述请求标识在所述待确认函数中不位于预设位置处,则在所述请求标识外构建一个函数,为所述目标函数;其中,所述请求标识在所构建的函数中位于预设位置处。
7.根据权利要求3-6中任一项所述的方法,其中,响应到所述目标函数在线程上开始调用,确定在开始调用的时刻下,所述线程在中央处理器上的累计消耗时间,包括:
响应到所述目标函数在线程上开始调用,获取所述线程对应的结构化数据;其中,所述结构化数据表征线程的工作情况;
从所述结构化数据中获取预设字段下的字段值,为开始调用的时刻下,所述线程在中央处理器上的累计消耗时间。
8.根据权利要求7所述的方法,其中,响应到所述待处理请求在所述线程上结束调用,确定在结束调用的时刻下,所述线程在中央处理器上的累计消耗时间,包括:
响应到所述目标函数在线程上结束调用,获取在结束调用的时刻下,所述线程对应的结构化数据;
从所述结构化数据中获取预设字段下的字段值,为结束调用的时刻下,所述线程在中央处理器上的累计消耗时间。
9.根据权利要求2-8中任一项所述的方法,还包括:
获取所述待处理请求的请求标识和所述线程的线程标识;其中,所述线程标识用于表征线程;
将所述请求标识和所述线程标识进行关联存储。
10.根据权利要求9所述的方法,其中,根据所述第一消耗时间和所述第二消耗时间,确定所述待处理请求对应的消耗时间,包括:
将所述第二消耗时间减去所述第一消耗时间,得到在开始调用的时刻至结束调用的时刻之间,所述线程对应的消耗时间;
根据请求标识和线程标识之间的关联关系,将所述线程对应的消耗时间,确定为所述待处理请求对应的消耗时间。
11.根据权利要求10所述的方法,还包括:
获取所述待处理请求的日志数据;其中,所述日志数据用于表征请求的处理情况;
将所述待处理请求的请求标识、消耗时间、以及日志数据进行关联存储。
12.一种基于线程的消耗时间的确定装置,包括:
第一确定单元,用于接收待处理请求,并确定所述待处理请求对应的线程;其中,所述线程用于处理待处理请求,所述线程中记录有线程在中央处理器上的累计消耗时间,所述累计消耗时间表征线程从创建开始,至当前时刻所累计的消耗时间,所述消耗时间表征中央处理器的算力消耗;
第二确定单元,用于响应于所述待处理请求的调用指令,根据所述线程在中央处理器上的累计消耗时间,确定所述待处理请求对应的消耗时间。
13.根据权利要求12所述的装置,其中,所述第二确定单元,包括:
第一确定模块,用于响应到待处理请求在线程上开始调用,确定在开始调用的时刻下,所述线程在中央处理器上的累计消耗时间,为第一消耗时间;
第二确定模块,用于响应到所述待处理请求在所述线程上结束调用,确定在结束调用的时刻下,所述线程在中央处理器上的累计消耗时间,为第二消耗时间;
第三确定模块,用于根据所述第一消耗时间和所述第二消耗时间,确定所述待处理请求对应的消耗时间。
14.根据权利要求13所述的装置,其中,所述第一确定模块,包括:
目标确定子模块,用于确定所述待处理请求中的目标函数;其中,所述目标函数表征在调用目标函数时,对待处理请求进行处理;
开始调用子模块,用于响应到所述目标函数在线程上开始调用,确定在开始调用的时刻下,所述线程在中央处理器上的累计消耗时间。
15.根据权利要求14所述的装置,其中,所述目标确定子模块,包括:
标识确定次模块,用于确定所述待处理请求中的请求标识;其中,所述请求标识用于表征待处理请求;
函数确定次模块,用于根据所述请求标识在所述待处理请求中所处的位置,确定所述待处理请求中的目标函数。
16.根据权利要求14所述的装置,其中,所述函数确定次模块,具体用于:
根据所述请求标识在所述待处理请求中所处的位置,确定所述请求标识所在的函数,为待确认函数;
若所述请求标识在所述待确认函数中位于预设位置处,则确定所述待确认函数为所述目标函数。
17.根据权利要求14所述的装置,所述函数确定次模块,还具体用于:
若确定所述请求标识在所述待确认函数中不位于预设位置处,则在所述请求标识外构建一个函数,为所述目标函数;其中,所述请求标识在所构建的函数中位于预设位置处。
18.根据权利要求14-17中任一项所述的装置,其中,所述开始调用子模块,具体用于:
响应到所述目标函数在线程上开始调用,获取所述线程对应的结构化数据;其中,所述结构化数据表征线程的工作情况;
从所述结构化数据中获取预设字段下的字段值,为开始调用的时刻下,所述线程在中央处理器上的累计消耗时间。
19.根据权利要求18所述的装置,其中,所述第二确定模块,包括:
数据获取子模块,用于响应到所述目标函数在线程上结束调用,获取在结束调用的时刻下,所述线程对应的结构化数据;
字段获取子模块,用于从所述结构化数据中获取预设字段下的字段值,为结束调用的时刻下,所述线程在中央处理器上的累计消耗时间。
20.根据权利要求13-19中任一项所述的装置,还包括:
标识获取单元,用于获取所述待处理请求的请求标识和所述线程的线程标识;其中,所述线程标识用于表征线程;
第一存储单元,用于将所述请求标识和所述线程标识进行关联存储。
21.根据权利要求20所述的装置,其中,所述第三确定模块,包括:
时间相减子模块,用于将所述第二消耗时间减去所述第一消耗时间,得到在开始调用的时刻至结束调用的时刻之间,所述线程对应的消耗时间;
时间确定子模块,用于根据请求标识和线程标识之间的关联关系,将所述线程对应的消耗时间,确定为所述待处理请求对应的消耗时间。
22.根据权利要求21所述的装置,还包括:
日志获取单元,用于获取所述待处理请求的日志数据;其中,所述日志数据用于表征请求的处理情况;
第二存储单元,用于将所述待处理请求的请求标识、消耗时间、以及日志数据进行关联存储。
23.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的方法。
24.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-11中任一项所述的方法。
25.一种计算机程序产品,其中,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-11中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410154097.5A CN117950872A (zh) | 2024-02-02 | 2024-02-02 | 基于线程的消耗时间的确定方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410154097.5A CN117950872A (zh) | 2024-02-02 | 2024-02-02 | 基于线程的消耗时间的确定方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117950872A true CN117950872A (zh) | 2024-04-30 |
Family
ID=90794282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410154097.5A Pending CN117950872A (zh) | 2024-02-02 | 2024-02-02 | 基于线程的消耗时间的确定方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117950872A (zh) |
-
2024
- 2024-02-02 CN CN202410154097.5A patent/CN117950872A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110784336A (zh) | 基于物联网的多设备智能定时延时场景设置方法及系统 | |
CN114861039A (zh) | 一种搜索引擎的参数配置方法、装置、设备及存储介质 | |
CN117609031A (zh) | 多核片上程序调试方法、装置、设备及存储介质 | |
CN117009283A (zh) | 一种多核多芯片数据处理方法、装置、芯片及存储介质 | |
CN116545905A (zh) | 一种服务健康检测方法、装置、电子设备及存储介质 | |
CN115103024B (zh) | 一种序列号生成方法、装置、电子设备及存储介质 | |
CN116126719A (zh) | 接口测试方法、装置、电子设备及存储介质 | |
CN116567077A (zh) | 裸金属指令发送方法、装置、设备及存储介质 | |
CN117950872A (zh) | 基于线程的消耗时间的确定方法、装置、设备及存储介质 | |
CN115438056A (zh) | 一种数据获取方法、装置、设备以及存储介质 | |
CN114610575B (zh) | 应用于计算分支的更新峰值的方法、装置、设备和介质 | |
CN111611077A (zh) | 任务参数处理方法、终端和存储介质 | |
CN113656299B (zh) | 极限qps的确定方法、装置、电子设备及可读存储介质 | |
CN114595231B (zh) | 一种数据库表生成方法、装置、电子设备及存储介质 | |
CN116579914B (zh) | 一种图形处理器引擎执行方法、装置、电子设备及存储介质 | |
CN114584605B (zh) | 一种业务分发方法、装置、电子设备及存储介质 | |
CN116700996B (zh) | 一种神经网络的内存分配方法、装置、设备及介质 | |
CN117608944A (zh) | 权属迁移量配比的计算方法、装置、电子设备和存储介质 | |
CN115442432B (zh) | 一种控制方法、装置、设备及存储介质 | |
CN113225228B (zh) | 数据处理方法及装置 | |
CN117608779A (zh) | 调度周期确定方法、装置、设备及介质 | |
CN117806619A (zh) | 数据处理方法、装置、电子设备及介质 | |
CN116801001A (zh) | 视频流的处理方法、装置、电子设备及存储介质 | |
CN115734326A (zh) | 一种短距离无线通信方法、装置、可穿戴设备及介质 | |
CN117041182A (zh) | 分布式组件的主服务器节点选择方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |