一种时延确定方法、系统、装置及电子设备与流程
1.本公开涉及人工智能技术领域,尤其涉及自动驾驶技术领域。
背景技术:
2.智能车辆依靠分布式车载系统实现智能控制,分布式车载系统中存在多个系统模块,不同的系统模块各自独立运转并对应负责不同的系统功能,以此协作实现系统的整体功能。车载系统调度系统模块以及系统模块执行均存在一定的时延。
技术实现要素:
3.本公开提供了一种时延确定方法、系统、装置及电子设备。
4.根据本公开的一方面,提供了一种时延确定方法,包括:
5.针对于待检测系统中的各模块,利用单调时钟对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻,其中,所述单调时钟区别于所述待检测系统的系统时钟;
6.基于各所述模块的调度时刻,确定各所述模块的运行时延。
7.根据本公开的另一方面,提供了一种时延确定系统,包括时间采样模块、时延统计模块以及单调时钟;
8.所述时间采样模块,用于针对于待检测系统中的各模块,利用单调时钟对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻,其中,所述单调时钟区别于所述待检测系统的系统时钟;
9.所述时延统计模块,用于基于各所述模块的调度时刻,确定各所述模块的运行时延。
10.根据本公开的另一方面,提供了一种时延确定装置,包括:
11.时刻获得模块,用于针对于待检测系统中的各模块,利用单调时钟对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻,其中,所述单调时钟区别于所述待检测系统的系统时钟;
12.第一时延确定模块,用于基于各所述模块的调度时刻,确定各所述模块的运行时延。
13.本公开提供的时延确定方法,针对于待检测系统中的各模块,利用单调时钟对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻,其中,所述单调时钟区别于所述待检测系统的系统时钟;基于各所述模块的调度时刻,确定各所述模块的运行时延。实现了对待检测系统中各模块时延的计算。
14.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
15.附图用于更好地理解本方案,不构成对本公开的限定。其中:
16.图1是根据本公开提供的第一种时延确定方法的流程示意图;
17.图2是根据本公开提供的第二种时延确定方法的流程示意图;
18.图3a是根据本公开提供的第三种时延确定方法的流程示意图;
19.图3b是根据本公开提供的一种模块时延确定的示例图;
20.图4是根据本公开提供的一种时延确定系统的结构示意图;
21.图5是根据本公开提供的一种时延确定装置的结构示意图;
22.图6是用来实现本公开实施例的时延确定方法的电子设备的框图。
具体实施方式
23.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
24.车载系统中的系统模块指的是软件模块,在实际应用中,车载系统调度系统模块、系统模块执行以及系统模块之间端到端传输数据均存在一定的时延,只有确定车载系统整体详细的时延信息,才能够针对性地解决车载系统中导致时间消耗大的对应问题。
25.现有技术常利用在系统模块内部插入打桩代码,或者在原始数据中加入数据产生的时间戳等方式,来计算系统模块之间端到端的时延,但这种时延计算方式的前提须得是各个系统模块的时间同步,而在时间不同步的分布式车载系统中则无法根据时间戳得到准确的时延信息,再者,这种时延计算方式只能确定系统模块之间端到端的时延,但造成车载系统整体的时延并不仅有端到端的时延这一种可能性。
26.为了解决上述问题,本公开提供了一种时延确定方法,包括:
27.一种时延确定方法,包括:
28.针对于待检测系统中的各模块,利用单调时钟对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻,其中,所述单调时钟区别于所述待检测系统的系统时钟;
29.基于各所述模块的调度时刻,确定各所述模块的运行时延。
30.由上可见,本公开提供的时延确定方法,针对于待检测系统中的各模块,利用单调时钟对各模块收发消息的时刻进行时间采样,来得到各模块的调度时刻。上述单调时钟区别于待检测系统的系统时钟,其时间不会受到系统时间或系统内不同步的模块各自的时间不同步的影响,所以能够在系统内建立统一化的时间进程,进而准确地得到各模块真正的时延。并且,在各模块收发消息时进行及时的时间采样,能够得到各模块的运行时延,实现了对模块以及模块之间多种时延的确定,相较于现有技术更准确地确定了各模块的时延以及系统的整体时延。在实际应用中,本公开能够帮助开发人员快速定位时延较大的模块,进而制定针对性的优化方案并进行迭代验证,有效地缩短了系统开发的周期。
31.下面通过具体实施例对本公开提供的时延确定方法进行详细说明。
32.本公开实施例的方法应用于智能终端,可以通过智能终端实施,在实际使用过程
中,该智能终端可以是智能车辆所连接的服务器、车载数据中心等。
33.参见图1,图1为本公开提供的第一种时延确定方法的流程示意图,包括:
34.步骤s11:针对于待检测系统中的各模块,利用单调时钟对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻。
35.其中,所述单调时钟区别于所述待检测系统的系统时钟。单调时钟的时间不受系统时钟的影响,也不受待检测系统内各模块各自的时钟影响,即使待检测系统内各模块各自时钟的时间以及系统时钟的时间均不同步,各模块在单调时钟下的时间也是一致的。
36.基于单调时钟的前提分别在各模块收发消息的时刻进行时间采样,所采样到的各模块的调度时刻在同一时间进程内,且均为单调时钟下的时间进程中的时刻,也就是说所采样到的各模块调度时刻与系统时钟无关,与各模块各自的时钟也无关。
37.上述各模块收发消息的时刻指的是各模块接收消息以及发出消息的时刻,也指待检测系统开始调度各模块以及结束调度各模块的时刻。
38.一个例子中,当待检测系统为订阅模式时,待检测系统发布订阅消息,与订阅消息相对应的、能够针对订阅消息进行第一步骤的处理的模块首先接收订阅消息,具体的,该模块可以是具有首先处理订阅消息的优先权的模块,也可以是存储有与订阅消息对应原始数据的模块。然后将该消息经过处理后得到的处理结果发送给下游模块,具体的,处理结果可以是订阅消息经过第一步骤处理后的新消息,也可以是根据订阅消息确定与之对应的原始数据,还可以是将订阅消息对应的原始数据经过处理后的数据。在这个过程中,该模块接收订阅消息的时刻即为接收消息的时刻,也为待检测系统开始调度该模块的时刻,该模块发出处理结果的时刻即为发出消息的时刻,也为待检测系统结束调度该模块的时刻。
39.当下游模块接收到该处理结果时,接收到该处理结果的时刻即为该下游模块接收消息的时刻,也为待检测系统开始调度该下游模块的时刻;该下游模块对该处理结果进行反馈得到下一处理结果,将下一处理结果发出的时刻即为该下游模块发出消息的时刻,也为待检测系统结束调度该下游模块的时刻。
40.一个例子中,待检测系统可以是车载系统。
41.步骤s12:基于各所述模块的调度时刻,确定各所述模块的运行时延。
42.在得到各模块收发消息的调度时刻后,由于所得到的各调度时刻均处于同一时间进程下,且各自表示待检测系统开始调度以及结束调度各模块的时刻,故而基于各调度时刻即可确定各模块的运行时延。
43.本公开的一个实施例中,各所述模块的运行时延包括各所述模块的执行时延、各所述模块的调度时延以及各所述模块之间的端到端时延。
44.上述各模块的执行时延指各模块被待检测系统调度时,执行对应的调度任务时的时延,也可以理解为各模块在被待检测系统调度从而开始执行时起,到各模块执行完毕这之间的时间,例如模块被待检测系统调度其根据接收到的消息向下游模块发送相应数据,模块执行的调度任务即为发送对应的数据,从模块接收到消息起到模型发送数据表示调度任务执行完毕为止,这之间的时间即模块执行该调度任务时的时延为该模块的执行时延。
45.上述各模块的调度时延是针对于各模块各自的上游模块与各模块之间的时延,即各模块的上游模块结束调度到各模块开始调度之间的时延,一个例子中,模块的调度时延可以指上游模块发出数据起,到处于下游的该模块接收到数据从而触发被待检测系统调度
时为止,具体的,上下游模块可以部署在远端,也可以部署在同一控制器中。若模块具有多个上游模块,则该模块具有多个针对于不同上游模块与该模块之间的调度时延。
46.上述各模块之间的端到端时延针对于具有上下游关系的各模块之间的时延,即从上游模块被待检测系统调度开始起,到下游模块被待检测系统调度结束为止。
47.针对于各模块分别得到各模块的执行时延、调度时延以及各模块之间的端到端时延,相较于现有技术,更加丰富了待检测系统中能够被检测得到准确时延信息的时延类型,使得各模块在待检测系统中被调度、执行、消息传递等多方面的完整过程均能够被考虑到,从而完整地得到待检测系统中真正的时间消耗,具体的,也能够确定一帧数据、一条消息等在整个待检测系统中各模块间流转的完整时间消耗。
48.由上可见,本公开提供的时延确定方法,针对于待检测系统中的各模块,利用单调时钟对各模块收发消息的时刻进行时间采样,来得到各模块的调度时刻。上述单调时钟区别于待检测系统的系统时钟,其时间不会受到系统时间或系统内不同步的模块各自的时间不同步的影响,所以能够在系统内建立统一化的时间进程,进而准确地得到各模块真正的时延。并且,在各模块收发消息时进行及时的时间采样,能够得到各模块的运行时延,实现了对模块以及模块之间多种时延的确定,相较于现有技术更准确地确定了各模块的时延以及系统的整体时延。在实际应用中,本公开能够帮助开发人员快速定位时延较大的模块,进而制定针对性的优化方案并进行迭代验证,有效地缩短了系统开发的周期。
49.在一种可能的实施方式中,如图2所示,图2为本公开提供的第二种时延确定方法的流程示意图,上述步骤s11针对于待检测系统中的各模块,利用单调时钟对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻,包括:
50.步骤s21:针对第一模块,利用单调时钟对所述第一模块接收第一消息的时刻进行时间采样,得到第一时刻。
51.第一时刻即为单调时钟下待检测系统开始调度第一模块的时刻。
52.步骤s22:利用单调时钟对所述第一模块发送第二消息的时刻进行时间采样,得到第二时刻。
53.其中,所述第二消息为所述第一消息的响应消息。第二消息中包括第一模块在接收到第一消息之后,对第一消息进行处理后所得到的处理结果。具体的,该处理结果可以是对第一消息的响应结果,例如,存储在第一模块中的与第一消息对应的数据;也可以是第一模块对第一消息对应的数据进行处理后的数据处理结果。
54.第二模块即为单调时钟下待检测系统结束调度第一模块的时刻。
55.上述步骤s12基于各所述模块的调度时刻,确定各所述模块的执行时延,包括:
56.步骤s23:基于所述第一时刻及第二时刻,确定所述第一模块的执行时延。
57.上述第一模块的执行时延指第一模块被待检测系统调度时,执行对应的调度任务时的时延,例如第一模块被待检测系统调度其根据接收到的消息向下游模块发送相应数据,第一模块执行的调度任务即为发送对应的数据,则第一模块执行该调度任务时的时延为该第一模块的执行时延。
58.由于第一时刻和第二时刻均为单调时钟下所采样的时刻,则两者处于同一时间进程下。所以在得到表示待检测系统开始调度第一模块的第一时刻和表示待检测系统结束调度第一模块的第二时刻后,第一时刻和第二时刻之间的时间差即为第一模块执行调度的时
间,所以根据第一时刻及第二时刻即可确定第一模块的执行时延。
59.当第一模块为对待检测系统发布的原始消息进行第一步骤的处理的模块时,第一消息为原始消息;当第一模块不为对待检测系统发布的原始消息进行第一步骤的处理的模块时,第一消息为第一模块的上游模块发送给第一模块的消息。
60.一个例子中,当待检测系统为订阅模式,待检测系统发布订阅消息时,若第一模块为接收订阅消息并对订阅消息进行第一步骤的处理的模块,则第一消息为订阅消息,第二消息为第一模块针对于订阅消息的响应消息,其中可以包括第一模块对订阅消息的处理结果。那么第一时刻为第一模块接收订阅消息的时刻,第二时刻为第一模块对订阅消息进行处理后将包括处理结果的第二消息发送给下游模块的时刻。
61.若第一模块不为接收订阅消息并对订阅消息进行第一步骤的处理的模块,而是接收上游模块发送针对于订阅消息的响应消息的模块,则第一消息为上游模块发送的针对于订阅消息的响应消息,第二消息为第一模块针对于上游模块发送的消息进行响应的响应消息,其中可以包括第一模块对上游模块发送的消息的处理结果。那么第一时刻为第一模块接收上游模块发送的消息的时刻,第二时刻为第一模块针对于上游模块发送的消息进行响应后将所得到的响应消息发送给下游模块的时刻。
62.本公开的一个实施例中,第一模块的执行时延可以按照以下公式计算:
63.t1=a
et-a
st
64.其中,t1为第一模块的调度时延,a
st
为第一模块接收第一消息的第一时刻,a
et
为第一模块发送第二消息的第二时刻。
65.由上可见,本公开提供的时延确定方法,利用单调时钟采样第一模块接收第一消息的第一时刻以及第一模块发送第二消息的第二时刻,第一时刻和第二时刻处于同一时间进程下,且不受系统时钟的影响,基于此确定第一模块的执行时延,能够不受第一模块与待检测系统时间同步与否的影响,从而更准确地得到第一模块的执行时延。
66.在一种可能的实施方式中,如图3a所示,图3a为本公开提供的第三种时延确定方法的流程示意图,上述步骤s11针对于待检测系统中的各模块,利用单调时钟对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻,包括:
67.步骤s31:针对第二模块,利用单调时钟对所述第二模块发送第三消息的时刻进行时间采样,得到第三时刻。
68.步骤s32:针对第三模块,利用单调时钟对第三模块接收到所述第二模块发送的第三消息的时刻进行时间采样,得到第四时刻。
69.上述步骤s12基于各所述模块的调度时刻,确定各所述模块的调度时延,包括:
70.步骤s33:基于所述第三时刻及第四时刻,确定所述第三模块的调度时延。
71.本公开实施例中,第二模块为第三模块的上游模块。
72.当第二模块为对待检测系统发布的原始消息进行第一步骤的处理的模块时,第二消息为原始消息;当第二模块不为对待检测系统发布的原始消息进行第一步骤的处理的模块时,第二消息为第二模块的上游模块发送给第二模块的消息。
73.第二模块在接收到第二消息之后,对第二消息进行处理并得到对应的响应消息即为第三消息。然后第二模块将第三消息发送给下游模块,也即发送给第三模块。此时第二模块发送第三消息的时刻即为第三时刻,也就是待检测系统对第二模块结束调度的时刻。
74.而第四时刻为第三模块接收到第三消息的时刻,也就是待检测系统对第三模块开始调度的时刻,那么第四时刻与第三时刻之间的时间差则为第三模块的调度时延。
75.故而,第三模块的调度时延可以按照以下公式计算:
76.t2=b
et-c
st
77.其中,t2为第三模块的调度时延,c
st
为第三模块接收第三消息的第四时刻,b
et
为第二模块发送第三消息的第三时刻。
78.上述第三模块的调度时延是针对于第三模块的上游模块与第三模块之间的时延,即第三模块的上游模块(第二模块)结束调度到第三模块开始调度之间的时延,若第三模块具有多个上游模块,即第二模块为多个模块且各自结束调度的时刻(第三时刻)不一致,则第三模块具有多个分别针对于不同第二模块与第三模块之间的调度时延。
79.需要注意的是,上述第二模块和第一模块之间不存在逻辑关系,“第一”、“第二”仅作区分用。
80.由上可见,本公开提供的时延确定方法,利用单调时钟得到第二模块发送第三消息的第三时刻,以及第三模块接收第三消息的第四时刻,第四时刻与第三时刻之间的时间差则为第三模块的调度时延,由于第三时刻和第四时刻在同一时间进程下,基于此确定第三模块的调度时延不受模块与系统时间不同步的影响,从而能够更准确地得到第三模块的调度时延。
81.本公开的一个实施例中,上述步骤s11针对于待检测系统中的各模块,利用单调时钟对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻,包括:
82.步骤一:针对第四模块,利用单调时钟对所述第四模块接收第四消息的时刻进行时间采样,得到第五时刻;
83.步骤二:针对第五模块,利用单调时钟对所述第五模块发送第五消息的时刻进行时间采样,得到第六时刻,其中,所述第五消息为所述第四消息的响应消息;
84.上述步骤s12基于各所述模块的调度时刻,确定各所述模块的运行时延,包括:
85.步骤三:基于所述第五时刻及第六时刻,确定所述第四模块与所述第五模块之间的端到端时延。
86.上述第四模块是第五模块的上游模块。
87.第四消息为第四模块接收到的消息,当第四模块为对待检测系统发布的原始消息进行第一步骤的处理的模块时,第四消息为原始消息;当第四模块不为对待检测系统发布的原始消息进行第一步骤的处理的模块时,第四消息为第四模块的上游模块发送给第四模块的消息。第五时刻即为第四模块接收到第四消息的时刻,也为待检测系统对第四模块开始调度的时刻。
88.第四模块针对于第四消息进行处理,得到用于响应第四消息的响应消息,其中可以包括第四模块针对于第四消息的处理结果。第四模块将所得到的响应消息发送给第五模块,使得第五模块针对于该响应消息进行处理,得到用于响应该响应消息的第五消息,其中可以包括第五模块针对于第四模块发送的响应消息的处理结果。然后第五模块将第五消息发送给下游模块,第五模块发送第五消息的时刻即为第六时刻,也为待检测系统对第五模块结束调度的时刻。
89.第六时刻和第五时刻之间的时间差则包括第四模块和第五模块的调度时间,基于
此确定第四模块和第五模块之间的端到端时延。
90.所以,第四模块和第五模块之间的端到端时延可以按照以下公式计算:
91.t3=e
et-d
st
92.其中,t3为第四模块和第五模块之间的端到端时延,d
st
为第四模块接收第四消息的第五时刻,e
et
为第五模块发送第五消息的第六时刻。
93.需要注意的是,上述第一模块、第三模块以及第四模块之间不存在逻辑关系,“第一”、“第三”、“第四”仅作区分用。
94.本公开的一个实施例中,如图3b所示,提出一种模块时延确定的示例图,其中模块一是模块二的上游模块,模块二是模块三的上游模块。t1为模块一接收消息的时刻,t2为模块一发送消息的时刻,t3为模块二接收消息的时刻,t4为模块二发送消息的时刻,t5为模块三接收消息的时刻,t6为模块三发送消息的时刻。则各模块的执行时延以及模块二、三的调度时延以及模块一和模块二之间、模块二和模块三之间的端到端时延按照以下公式计算:
95.x
1执行
=t
2-t196.x
2执行
=t
4-t397.x
3执行
=t
6-t598.x
2调度
=t
3-t299.x
3调度
=t
5-t4100.x
12端到端
=t
4-t1101.x
23端到端
=t
6-t3102.其中,x
1执行
为模块一的执行时延,x
2执行
为模块二的执行时延,x
3执行
为模块三的执行时延,x
2调度
为模块二的调度时延,x
3调度
为模块三的调度时延,x
12端到端
为模块一和模块二之间的端到端时延,x
23端到端
为模块二和模块三的端到端时延。
103.由上可见,本公开提供的时延确定方法,利用单调时钟得到第四模块接收第四消息的第五时刻以及第五模块发送第五消息的第六时刻,第五时刻和第六时刻处于同一时间进程下,不受模块和系统时间不同步的影响,基于此能够更加准确地确定第四模块和第五模块之间的端到端时延,相较于现有技术,本公开确定端到端时延的方式更为便捷简单有效。
104.参见图4,本公开还提供了一种时延确定系统,包括:时间采样模块401、时延统计模块402以及单调时钟403;
105.所述时间采样模块401,用于针对于待检测系统中的各模块,利用单调时钟403对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻,其中,所述单调时钟区别于所述待检测系统的系统时钟;
106.所述时延统计模块402,用于基于各所述模块的调度时刻,确定各所述模块的运行时延。
107.由上可见,本公开提供的时延确定系统,针对于待检测系统中的各模块,利用单调时钟对各模块收发消息的时刻进行时间采样,来得到各模块的调度时刻。上述单调时钟区别于待检测系统的系统时钟,其时间不会受到系统时间或系统内不同步的模块各自的时间不同步的影响,所以能够在系统内建立统一化的时间进程,进而准确地得到各模块真正的时延。并且,在各模块收发消息时进行及时的时间采样,能够得到各模块的运行时延,实现
了对模块以及模块之间多种时延的确定,相较于现有技术更准确地确定了各模块的时延以及系统的整体时延。在实际应用中,本公开能够帮助开发人员快速定位时延较大的模块,进而制定针对性的优化方案并进行迭代验证,有效地缩短了系统开发的周期。
108.本公开的一个实施例中,各所述模块的运行时延包括各所述模块的执行时延、各所述模块的调度时延以及各所述模块之间的端到端时延。
109.本公开的一个实施例中,所述时间采样模块401,具体用于:
110.针对第一模块,利用单调时钟403对所述第一模块接收第一消息的时刻进行时间采样,得到第一时刻;
111.利用单调时钟403对所述第一模块发送第二消息的时刻进行时间采样,得到第二时刻,其中,所述第二消息为所述第一消息的响应消息;
112.基于所述第一时刻及第二时刻,确定所述第一模块的执行时延。
113.由上可见,本公开提供的时延确定系统,利用单调时钟采样第一模块接收第一消息的第一时刻以及第一模块发送第二消息的第二时刻,第一时刻和第二时刻处于同一时间进程下,且不受系统时钟的影响,基于此确定第一模块的执行时延,能够不受第一模块与待检测系统时间同步与否的影响,从而更准确地得到第一模块的执行时延。
114.本公开的一个实施例中,所述时间采样模块401,具体用于:
115.针对第二模块,利用单调时钟403对所述第二模块发送第三消息的时刻进行时间采样,得到第三时刻;
116.针对第三模块,利用单调时钟403对所述第三模块接收到所述第二模块发送的第三消息的时刻进行时间采样,得到第四时刻;
117.所述时延统计模块402,具体用于:
118.基于所述第三时刻及第四时刻,确定所述第三模块的调度时延。
119.由上可见,本公开提供的时延确定系统,利用单调时钟得到第二模块发送第三消息的第三时刻,以及第三模块接收第三消息的第四时刻,第四时刻与第三时刻之间的时间差则为第三模块的调度时延,由于第三时刻和第四时刻在同一时间进程下,基于此确定第三模块的调度时延不受模块与系统时间不同步的影响,从而能够更准确地得到第三模块的调度时延。
120.本公开的一个实施例中,所述时间采样模块401,具体还用于:
121.针对第四模块,利用单调时钟403对所述第四模块接收第四消息的时刻进行时间采样,得到第五时刻;
122.针对第五模块,利用单调时钟403对所述第五模块发送第五消息的时刻进行时间采样,得到第六时刻,其中,所述第五消息为所述第四消息的响应消息;
123.所述时延统计模块402,具体还用于:
124.基于所述第五时刻及第六时刻,确定所述第四模块与所述第五模块之间的端到端时延。
125.由上可见,本公开提供的时延确定系统,利用单调时钟得到第四模块接收第四消息的第五时刻以及第五模块发送第五消息的第六时刻,第五时刻和第六时刻处于同一时间进程下,不受模块和系统时间不同步的影响,基于此能够更加准确地确定第四模块和第五模块之间的端到端时延,相较于现有技术,本公开确定端到端时延的方式更为便捷简单有
效。
126.参见图5,本公开还提供了一种时延确定装置,包括:
127.时刻获得模块501,用于针对于待检测系统中的各模块,利用单调时钟对各所述模块收发消息的时刻进行时间采样,得到各所述模块的调度时刻,其中,所述单调时钟区别于所述待检测系统的系统时钟;
128.第一时延确定模块502,用于基于各所述模块的调度时刻,确定各所述模块的运行时延。
129.由上可见,本公开提供的时延确定装置,针对于待检测系统中的各模块,利用单调时钟对各模块收发消息的时刻进行时间采样,来得到各模块的调度时刻。上述单调时钟区别于待检测系统的系统时钟,其时间不会受到系统时间或系统内不同步的模块各自的时间不同步的影响,所以能够在系统内建立统一化的时间进程,进而准确地得到各模块真正的时延。并且,在各模块收发消息时进行及时的时间采样,能够得到各模块的运行时延,实现了对模块以及模块之间多种时延的确定,相较于现有技术更准确地确定了各模块的时延以及系统的整体时延。在实际应用中,本公开能够帮助开发人员快速定位时延较大的模块,进而制定针对性的优化方案并进行迭代验证,有效地缩短了系统开发的周期。
130.本公开的一个实施例中,各所述模块的运行时延包括各所述模块的执行时延、各所述模块的调度时延以及各所述模块之间的端到端时延。
131.本公开的一个实施例中,所述时刻获得模块501,具体用于:
132.针对第一模块,利用单调时钟对所述第一模块接收第一消息的时刻进行时间采样,得到第一时刻;
133.利用单调时钟对所述第一模块发送第二消息的时刻进行时间采样,得到第二时刻,其中,所述第二消息为所述第一消息的响应消息;
134.所述第一时延确定模块502,具体用于:
135.基于所述第一时刻及第二时刻,确定所述第一模块的执行时延。
136.由上可见,本公开提供的时延确定装置,利用单调时钟采样第一模块接收第一消息的第一时刻以及第一模块发送第二消息的第二时刻,第一时刻和第二时刻处于同一时间进程下,且不受系统时钟的影响,基于此确定第一模块的执行时延,能够不受第一模块与待检测系统时间同步与否的影响,从而更准确地得到第一模块的执行时延。
137.本公开的一个实施例中,所述时刻获得模块501,具体用于:
138.针对第二模块,利用单调时钟对所述第二模块发送第三消息的时刻进行时间采样,得到第三时刻;
139.针对第三模块,利用单调时钟对所述第三模块接收到所述第二模块发送的第三消息的时刻进行时间采样,得到第四时刻;
140.所述第一时延确定模块502,具体用于:
141.基于所述第三时刻及第四时刻,确定所述第三模块的调度时延。
142.由上可见,本公开提供的时延确定装置,利用单调时钟得到第二模块发送第三消息的第三时刻,以及第三模块接收第三消息的第四时刻,第四时刻与第三时刻之间的时间差则为第三模块的调度时延,由于第三时刻和第四时刻在同一时间进程下,基于此确定第三模块的调度时延不受模块与系统时间不同步的影响,从而能够更准确地得到第三模块的
调度时延。
143.本公开的一个实施例中,所述时刻获得模块501,具体还用于:
144.针对第四模块,利用单调时钟对所述第四模块接收第四消息的时刻进行时间采样,得到第五时刻;
145.针对第五模块,利用单调时钟对所述第五模块发送第五消息的时刻进行时间采样,得到第六时刻,其中,所述第五消息为所述第四消息的响应消息;
146.所述第一时延确定模块502,具体还用于:
147.基于所述第五时刻及第六时刻,确定所述第四模块与所述第五模块之间的端到端时延。
148.由上可见,本公开提供的时延确定装置,利用单调时钟得到第四模块接收第四消息的第五时刻以及第五模块发送第五消息的第六时刻,第五时刻和第六时刻处于同一时间进程下,不受模块和系统时间不同步的影响,基于此能够更加准确地确定第四模块和第五模块之间的端到端时延,相较于现有技术,本公开确定端到端时延的方式更为便捷简单有效。
149.本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
150.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
151.图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
152.如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
153.设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
154.计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如时延确定方法。例如,在一些实施例中,时延确定方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或
者全部可以经由rom 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到ram 603并由计算单元601执行时,可以执行上文描述的时延确定方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行时延确定方法。
155.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
156.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
157.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
158.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
159.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
160.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通
过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
161.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
162.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
