一种时延展示方法以及装置与流程

文档序号:33620413发布日期:2023-03-25 11:24阅读:31来源:国知局
一种时延展示方法以及装置与流程

1.本技术实施例涉及云计算领域,尤其涉及一种时延展示方法以及装置。


背景技术:

2.云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。对于采用云计算的软件中,受时延影响较大。例如云游戏,在云游戏的运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户。在终端,用户的游戏设备不需要任何高端处理器和显卡,只需要基本的视频解压能力就可以了,时延是影响云游戏用户体验的首要指标,时延优化是云计算产品的重点工作内容,主要工作是精准测量时延,从而为时延优化指明方向。
3.当前观察时延的方式为修改服务器和客户端系统代码,增加钩子(hook)函数,检测从给一个系统的输入端施加一个激励信号到系统的输出端产生对应的系统响应之间的端到端时延(end to end latency)。
4.但是该方式分析能力低下,只能简单测试,不能度量服务器端内部处理环节,时延分析精度不高。


技术实现要素:

5.本技术实施例提供了一种时延展示方法以及装置,用于提高时延分析精度。
6.本技术实施例第一方面提供了一种时延展示方法,包括:获取触发事件;根据触发事件执行多个第一处理环节,多个第一处理环节中的每个第一处理环节对应一个第一度量节点,每个第一度量节点用于采集每个第一度量节点对应的第一处理环节的第一处理信息,第一处理信息包括第一时间戳,第一时间戳指示第一处理环节处理完成时的时间点;根据多个第一处理信息中的第一时间戳确定每个第一处理环节的时延;展示每个第一处理环节的时延。
7.上述第一方面中,终端设备基于触发事件执行多个第一处理环节,每个第一处理环节上的第一度量节点可以监测该第一处理环节处理完成时的时间戳,终端设备可以根据多个第一处理环节的时间戳确定各个第一处理环节的时延,并展示该时延,可以提供针对各个处理环节的时延,方便确定时延优化方向,提供精度高的时延分析。
8.在一个可能的实施方式中,该方法还包括:根据多个第一处理环节生成用户事件;将用户事件发送给服务器;接收来自服务器的数据包,数据包为服务器根据用户事件生成的;根据数据包执行多个第二处理环节,第二处理环节中的每个第二处理环节对应一个第二度量节点,每个第二度量节点用于采集每个第二度量节点对应的第二处理环节的第二处理信息,第二处理信息包括第二时间戳,第二时间戳指示第二处理环节处理完成时的时间点;根据多个第二处理信息中的第二时间戳确定每个第二处理环节的时延;展示每个第二处理环节的时延。
9.上述可能的实施方式中,终端设备多个第一处理环节生成用户事件,服务器可以根据用户事件反馈数据包,终端设备可以根据该数据包执行多个第二处理环节,每个第二处理环节上的第二度量节点可以监测该第二处理环节处理完成时的时间戳,终端设备可以根据多个第二处理环节的时间戳确定各个第二处理环节的时延,并展示该时延,可以提供针对各个处理环节的时延,方便确定时延优化方向,提供精度高的时延分析。
10.在一个可能的实施方式中,每个第一处理环节的第一处理信息还包括第一事件标识、第一视频帧标识和第一处理环节标识,第一事件标识指示当前的触发事件,第一视频帧标识指示当前的视频帧,第一处理环节标识指示当前的第一处理环节;上述步骤根据多个第一处理信息中的第一时间戳确定每个第一处理环节的时延包括:根据多个第一处理信息中相同的第一事件标识和第一视频帧标识对应的第一时间戳,确定第一处理环节标识指示的第一处理环节的时延。
11.上述可能的实施方式中,每个第一度量节点还采集该第一时间戳所属的第一事件标识、第一视频帧标识和第一处理环节标识,在终端设备并行处理多个事件的场景下,可以区分不同事件、不同视频帧以及不同处理环节的第一时间戳,提高时延分析准确度。
12.在一个可能的实施方式中,该方法还包括:展示每个第一处理环节的时延对应的第一事件标识、第一视频帧标识和第一处理环节标识。
13.上述可能的实施方式中,终端设备展示第一事件标识、第一视频帧标识和第一处理环节标识可以方便确定用户时延优化方向,提供精度高的时延分析。
14.在一个可能的实施方式中,每个第二处理环节的第二处理信息还包括第二事件标识、第二视频帧标识和第二处理环节标识,第二事件标识指示当前的触发事件,第二视频帧标识指示当前的视频帧,第二处理环节标识指示当前的第二处理环节;上述步骤根据多个第二处理信息中的第二时间戳确定每个第二处理环节的时延包括:根据多个第二处理信息中相同的第二事件标识和第二视频帧标识对应的时间戳,确定第二处理环节标识指示的第二处理环节的时延。
15.上述可能的实施方式中,每个第二度量节点还采集该第二时间戳所属的第二事件标识、第二视频帧标识和第二处理环节标识,在终端设备并行处理多个事件的场景下,可以区分不同事件、不同视频帧以及不同处理环节的第二时间戳,提高时延分析准确度。
16.在一个可能的实施方式中,该方法还包括:展示每个第二处理环节的时延对应的第二事件标识、第二视频帧标识和第二处理环节标识。
17.上述可能的实施方式中,终端设备展示第二事件标识、第二视频帧标识和第二处理环节标识可以方便确定用户时延优化方向,提供精度高的时延分析。
18.在一个可能的实施方式中,该方法还包括:接收来自服务器的多个第三处理信息,多个第三处理信息为服务器中多个第三度量节点生成的,多个第三度量节点中每个第三度量节点对应一个第三处理环节,多个第三处理环节为服务器根据用户事件执行的,每个第三处理信息包括第三时间戳,第三时间戳指示第三处理环节处理完成时的时间点;根据多个第三处理信息中的第三时间戳确定每个第三处理环节的时延。
19.上述可能的实施方式中,终端设备多个第一处理环节生成用户事件,服务器可以根据用户事件基于多个第三处理环节反馈数据包,每个第三处理环节上的第三度量节点可以监测该第三处理环节处理完成时的时间戳,终端设备可以根据多个第三处理环节的时间
戳确定各个第三处理环节的时延,并展示该时延,可以提供针对各个处理环节的时延,方便确定时延优化方向,提供精度高的时延分析。
20.在一个可能的实施方式中,每个第三处理环节的第三处理信息还包括第三事件标识、第三视频帧标识和第三处理环节标识,第三事件标识指示当前的触发事件,第三视频帧标识指示所当前的视频帧,第三处理环节标识指示当前的第三处理环节;上述步骤根据多个第三处理信息中的第三时间戳确定每个第三处理环节的时延包括:根据多个第三处理信息中相同的第三事件标识和第三视频帧标识对应的时间戳,确定第三处理环节标识指示的第三处理环节的时延。
21.上述可能的实施方式中,每个第三度量节点还采集该第三时间戳所属的第三事件标识、第三视频帧标识和第三处理环节标识,在终端设备并行处理多个事件的场景下,可以区分不同事件、不同视频帧以及不同处理环节的第三时间戳,提高时延分析准确度。
22.在一个可能的实施方式中,该方法还包括:展示每个第三处理环节的时延对应的第三事件标识、第三视频帧标识和第三处理环节标识。
23.上述可能的实施方式中,终端设备展示第二事件标识、第二视频帧标识和第二处理环节标识可以方便确定用户时延优化方向,提供精度高的时延分析。
24.在一个可能的实施方式中,该方法还包括:根据每个第一处理环节的时延、每个第二处理环节的时延、每个第三处理环节的时延和硬件标定时延,确定端到端时延;展示端到端时延。
25.上述可能的实施方式中,由终端设备和服务器的各个处理环节的时延,以及终端设备中的硬件标定时延确定的端到端时延可以与由展示的时间戳与触发时的时间戳获得的时延比较,排除除终端设备和服务器的其他影响。
26.本技术实施例第二方面提供了一种时延展示方法,包括:接收来自终端设备的用户事件,用户事件由终端设备根据触发事件生成;根据用户事件执行多个第三处理环节,以生成数据包,多个第三处理环节中的每个第三处理环节对应三个第三度量节点,每个第三度量节点用于监测每个第三度量节点对应的第三处理环节的第三处理信息,第三处理信息包括第三时间戳,第三时间戳指示第三处理环节处理完成时的时间点;将数据包和多个第三处理信息发送给终端设备。
27.上述第二方面中,终端设备多个第一处理环节生成用户事件,服务器可以根据用户事件基于多个第三处理环节反馈数据包,每个第三处理环节上的第三度量节点可以监测该第三处理环节处理完成时的时间戳,终端设备可以根据多个第三处理环节的时间戳确定各个第三处理环节的时延,并展示该时延,可以提供针对各个处理环节的时延,方便确定时延优化方向,提供精度高的时延分析。
28.在一个可能的实施方式中,每个第三处理环节的第三处理信息还包括第三事件标识、第三视频帧标识和第三处理环节标识,第三事件标识指示当前的触发事件,第三视频帧标识指示所当前的视频帧,第三处理环节标识指示当前的第三处理环节。
29.本技术实施例第三方面提供了一种时延展示装置,可以实现上述第一方面或第一方面中任一种可能的实施方式中的方法。该装置包括用于执行上述方法的相应的单元或模块。
30.该装置包括的单元或模块可以通过软件和/或硬件方式实现。该装置例如可以为
网络设备,也可以为支持网络设备实现上述方法的芯片、芯片系统、或处理器等,还可以为能实现全部或部分网络设备功能的逻辑模块或软件。
31.本技术实施例第四方面提供了一种时延展示装置,可以实现上述第二方面或第二方面中任一种可能的实施方式中的方法。该装置包括用于执行上述方法的相应的单元或模块。该装置包括的单元或模块可以通过软件和/或硬件方式实现。该装置例如可以为网络设备,也可以为支持网络设备实现上述方法的芯片、芯片系统、或处理器等,还可以为能实现全部或部分网络设备功能的逻辑模块或软件。
32.本技术实施例第五方面提供了一种通信装置,包括:处理器,该处理器与存储器耦合,该存储器用于存储指令,当指令被处理器执行时,使得该装置实现上述第一方面或第一方面中任一种可能的实施方式中的方法。该装置例如可以为网络设备,也可以为支持网络设备实现上述方法的芯片或芯片系统等。
33.本技术实施例第六方面提供了一种通信装置,包括:处理器,该处理器与存储器耦合,该存储器用于存储指令,当指令被处理器执行时,使得该装置实现上述第二方面或第二方面中任一种可能的实施方式中的方法。该装置例如可以为网络设备,也可以为支持网络设备实现上述方法的芯片或芯片系统等。
34.本技术实施例第七方面提供了一种计算机可读存储介质,该计算机可读存储介质中保存有指令,当该指令被执行时,使得计算机执行前述第一方面或第一方面任一种可能的实施方式提供的方法。
35.本技术实施例第八方面提供了一种计算机可读存储介质,该计算机可读存储介质中保存有指令,当该指令被执行时,使得计算机执行前述第二方面或第二方面任一种可能的实施方式提供的方法。
36.本技术实施例第九方面提供了一种计算机程序产品,计算机程序产品中包括计算机程序代码,当该计算机程序代码被执行时,使得计算机执行前述第一方面或第一方面任一种可能的实施方式提供的方法。
37.本技术实施例第十方面提供了一种计算机程序产品,计算机程序产品中包括计算机程序代码,当该计算机程序代码被执行时,使得计算机执行前述第二方面或第二方面任一种可能的实施方式提供的方法。
附图说明
38.图1为本技术实施例提供的云电脑模式结构示意图;
39.图2为本技术实施例提供的一种时延展示方法示意图;
40.图3为本技术实施例提供的事件请求-响应模型的结构示意图;
41.图4为本技术实施例提供的端到端时延的结构示意图;
42.图5为本技术实施例提供的单项链表节点的结构示意图;
43.图6为本技术实施例提供的云游戏时延检测的结构示意图;
44.图7为本技术实施例提供的一种时延展示装置的结构示意图;
45.图8为本技术实施例提供的另一种时延展示装置的结构示意图;
46.图9为本技术实施例提供的一种通信装置的结构示意图;
47.图10为本技术实施例提供的另一种通信装置的结构示意图。
具体实施方式
48.本技术实施例提供了一种时延展示方法以及装置,用于提高时延分析精度。
49.下面结合附图,对本技术的实施例进行描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
50.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
51.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
52.另外,为了更好的说明本技术,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本技术同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本技术的主旨。
53.首先对本技术实施例中涉及的一些概念做解释说明。
54.智能手机业已在现代人们的生活、工作中起到及其重要的作用,比如,在通讯,新闻,娱乐,购物等方面都给人们带来了极大的便利。另外一方面,计算资源云化也是一种重要的行业发展趋势,是数字化转型的重要的组成部分,云计算将成为数值化世界的重要基础设施,构筑在云之上的大数据、人工智能、物联网等技术将发挥更大的社会和经济价值。而智能手机成为接入服务器的重要终端设备,借助智能手机本身的能力和服务器计算/存贮资源提供的强大能力,智能终端必将在专业游戏(如云游戏等)、行业应用发挥越来越不可替代的作用。然而,目前智能终端对云资源的使用多数是基于软件层(即software层,也称为s层;在网络架构中s层为服务层,相对应的还有平台层(即platform层,也称为p层)和基础设置层(即infrastructure层,也称为i层)。这就需要在终端的应用层和服务器的s层进行相对复杂的开发,一定程度上提高了智能手机对服务器资源的使用的门槛。目前可以看到的较为典型的智能终端对云资源的使用,主要为云存储和云电脑(也包括云游戏、增强现实(augmented reality,ar)和云虚拟现实(virtual reality,vr))。比如如图1所示的云电脑模式,其中该云电脑模式包括终端、管道、云虚拟桌面、云基础设施(包括中央处理器(central processing unit,cpu)、内存、硬盘以及图形处理器(graphics processing unit,gpu))、第三方应用以及内容服务器等架构。智能终端对服务器资源的使用有如下特点:服务器通过虚拟平台实现对虚拟资源和业务资源的管理,用户实际的目标应用程序在服务器虚拟机。桌面接入程序将终端设备远程连接至服务器的虚拟桌面。上行方向,终端设备上的外设(比如鼠标或者键盘)可以基于各种策略映射至云平台的虚拟桌面上,并生成相应的操作指令。下行桌面的图像通常以视频流的方式投送至终端设备;终端设备将下行收到的远程桌面数据流解码后,送到显存;在本地显示器实现用户操作结果的呈现。以云电脑游戏为例,游戏程序安装在服务器虚拟机,也即云电脑上,终端设备的远程桌面程序将指令
上传至云电脑后,游戏程序借助服务器的计算资源,实现相应的游戏画面的渲染。然后终端设备的远程桌面程序通过服务器操作设备的相应接口抓取渲染完成的游戏画面,然后经过必要的压缩处理后,发送到终端设备进行解码显示。
55.时延是影响云计算终端接收服务器响应的首要指标,时延优化是云计算产品的重点工作内容,主要工作是精准测量时延,从而为时延优化指明方向。当前观察时延的方式为修改服务器和客户端系统代码,增加钩子(hook)函数,检测从给一个系统的输入端施加一个激励信号到系统的输出端产生对应的系统响应之间的端到端时延(end to end latency)。但是该方式分析能力低下,只能简单测试,不能度量服务器端内部处理环节,时延分析精度不高。
56.为解决上述问题,本技术实施例提供了一种时延展示方法,该方法如下所述。
57.201.终端设备获取触发事件。
58.本实施例中,该触发事件可以是有人为触发,例如终端设备接收人工通过鼠标、键盘或者触摸屏幕产生的触发信号确定的事件,也可以是在测试场景下周期性在终端产生的触发信号对应的触发事件,本技术对此不作限定。
59.202.终端设备根据触发事件执行多个第一处理环节。
60.本实施例中,终端设备对触发事件的处理过程可以抽象为由多个第一处理环节(记为pj)串联组成的事件请求-响应模型,请参阅图3所示。该模型由事件驱动,每检测到一个事件,就会引发每个第一处理环节上对该事件本身进行处理或者对该事件产生的媒体响应进行处理。根据处理对象的不同,可以将第一处理环节分为2类,一类只和事件本身相关;另一类是由事件引发的媒体处理。多个第一处理环节中每个第一处理环节都基于该触发事件进行处理,每个第一处理环节都有相应的处理时延,本技术实施例中的每个第一处理环节都设置有一个第一度量节点,可以采集该第一度量节点所在的第一处理环节的处理信息,该处理信息可以包括指示第一处理环节处理完成的时间点的第一时间戳。其中,某个处理环节内部还可以做细致的时延度量,此处不作限定。多个第一度量节点构成一个链表,该链表可以为单向链表,该单向链表的链接方向与第一处理环节的处理方向相反,便于溯源。
61.203.终端设备根据多个第一处理环节生成用户事件。
62.本实施例中,对于云计算场景,终端设备需要将触发事件处理成服务器可以理解的操作指令,相应的,可以通过多个第一处理环节将该触发事件处理成用于指示服务器相应处理方式的用户事件。以云游戏为例,游戏程序可以侦听鼠标或键盘或触控等操作生成用户事件。
63.204.终端设备将用户事件发送给服务器,相应的,服务器接收该用户事件。
64.本实施例中,云计算场景下,终端设备需要借助服务器的计算资源处理数据,因此可以将生成的用户事件发送给服务器处理,服务器即可以根据该用户事件中的参数执行处理流程。对于云游戏场景,游戏程序将用户事件发送给服务器,然后可以借助服务器的计算资源,实现相应的游戏画面的渲染,减少游戏程序所需的计算能力。
65.205.服务器根据用户事件执行多个第三处理环节,以生成数据包。
66.本实施例中,服务器对该用户事件的处理过程也可以抽象分成多个第三处理环节,每个处理环节分别执行一种处理方式,最终生成终端需求的数据包,每个处理方式可以是例如侦听事件、处理逻辑或渲染等。示例性的,上述云游戏中借助服务器的计算资源,实
现相应的游戏画面的渲染的过程则可以视为多个第三处理环节,终端设备的远程桌面程序通过服务器操作设备的相应接口抓取渲染完成的游戏画面,然后经过必要的压缩处理后生成数据包。
67.206.服务器将数据包和多个第三处理信息发送给终端设备。
68.本实施例中,多个第三处理环节可以参照多个第一处理环节的相关描述,每个第三处理环节设置有一个第三度量节点,该第三度量节点可以统计第三处理环节的第三处理信息,例如第三处理环节处理完成时的时间戳。服务器可以数据包发送给终端设备,多个第三处理信息包含于服务器的日志中,该多个第三处理信息可以与数据包一起发送给终端设备,也可以在数据包发送之后再发送给终端设备,此处不作限定。
69.207.终端设备根据数据包执行多个第二处理环节。
70.本实施例中,终端设备可以接收的数据包进行解包处理以获得其中的数据,解包的过程即为一个第二处理环节。对于云游戏中,在终端设备的游戏画面解码以及解包的环节即各为不同的第二处理环节。与第一处理环节相同,每个第二处理环节都设置有一个第二度量节点,该第二度量节点可以采集第二处理环节处理完成时的第二处理信息,例如第二时间戳。
71.208.终端设备根据第一时间戳确定每个第一处理环节的时延,根据第二时间戳确定每个第二处理环节的时延,根据第三时间戳,确定每个第三处理环节的时延。
72.本实施例中,终端设备可以将相邻两个第一度量节点采集的第一时间戳相减,即可获得后处理的第一处理环节处理的时延。示例性的,第一处理环节pj对应的第一度量节点采集的第一时间戳为tj,第一处理环节p
j-1
对应的第一度量节点采集的第一时间戳为t
j-1
,则pj的时延tdj=t
j-t
j-1
。同样的,多个第二度量节点采集的第二时间戳中相邻两个第二时间戳相减可以获得后处理的第二处理环节处理的时延,多个第三度量节点采集的第三时间戳中相邻两个第三时间戳相减可以获得后处理的第三处理环节处理的时延。
73.209.终端设备展示每个第一处理环节、每个第二处理环节和每个第三处理环节的时延。
74.本实施例中,终端设备在确定每个第一处理环节的时延后,即可对每个第一处理环节的时延进行展示,可以是在终端设备的显示屏上展示,也可以是发送到其他设备展示,此处不作限定。在一个示例中,时延的展示形式可以是p1:td1,p2:td2,

,pj:tdj。本技术实施例中,确定时延和展示时延的操作还可以由服务器或者第三方设备执行,此处不作限定。
75.第二处理环节和第三处理环节的时延可以参照第一处理环节的时延的展示方式,此处不再赘述。
76.本技术实施例中,当只存在第一处理环节时,终端设备只确定并展示每个第一处理环节的时延。
77.在一个可能的示例中,第一处理信息中还可以包括第一事件标识、第一视频帧标识和第一处理环节标识,第一事件标识指示当前的触发事件,第一视频帧标识指示当前的视频帧,第一处理环节标识指示当前的第一处理环节。第二处理信息中还可以包括第二事件标识、第二视频帧标识和第二处理环节标识,第二事件标识指示当前的触发事件,第二视频帧标识指示当前的视频帧,第二处理环节标识指示当前的第二处理环节。第三处理信息中还可以包括第三事件标识、第三视频帧标识和第三处理环节标识,第三事件标识指示当
前的触发事件,第三视频帧标识指示当前的视频帧,第三处理环节标识指示当前的第三处理环节。第一处理信息、第二处理信息和第三处理信息为度量节点处于同一个触发事件或视频帧的采集的数据,对于多个第一处理环节、多个第二处理环节和多个第三处理环节中的处理环节,本技术实施例可以定义三元组来描述pj环节上处理的第m个触发事件或者与该触发事件对应的视频帧序列中的第n帧视频的时间戳,其中表示在pj环节上处理的第m个触发事件;表示在pj环节为第m个触发事件所对应处理的第n个视频帧,对于只和触发事件相关的处理环节,忽略此参数;表示在pj环节上触发事件或者视频帧处理完成时的时间戳。
78.端到端时延如图4所示,在每个处理环节上,每个事件及每个视频帧都记录时间戳,我们可以由此统计出每个视频帧端到端的时延
79.本技术实施例中,为便于在计算机上描述,三元组也可以采用m,n,j来替代和这三个参数,该三元组可以转记为四元组{m,n,j,t}。
80.对于度量节点,如图5所示,为每个处理环节pj,增加一个单项链表节点(node),并将其连成一个单向链表,注意链表的头部(head)是最后一个处理环节pj所拥有的单向链表节点,它指向p
j-1
所拥有的节点,p
j-1
拥有的节点它指向p
j-2
所拥有的节点,以此类推;链表的尾部(tail)是第一个处理环节p1所拥有的节点。其中,多个第一处理环节、多个第二处理环节和多个第三处理环节中分别至少包括一对head和tail。
81.对于检测处理时延的初始阶段,本技术实施例可以对每个处理节点的四元组初始化为{m=0,n=0,t=-1,j为本节点的id},初始化过程如下所述。
82.pnode-》m=0;
83.pnode-》n=0;
84.pnode-》t=-1;
85.pnode-》j=15;//15是本节点的id
86.pnode-》j_name=strdup(“proc1”);//处理环节j的名字,在工具建表时使用,utf-8编码;
87.具体的,本技术实施例中,每个处理环节的id之间的间隔可以大于1,便于在处理节点间添加新的处理环节。
88.在四元组数据的更新过程中,对于非tail节点:
89.第一种情况是对于只涉及事件处理环节的节点,n总是为0,即n≡0。比较本节点和下一个节点的m是否不同,若不相同则用下一个节点的m来更新到本节点的m。
90.第二种情况是,对于涉及媒体处理环节的节点,比较本节点和下一个节点的m是否相同,若相同则本节点n自增1;否则用下一个节点的m来更新到本节点的m,同时将本节点的n重置为1。更新过程如下所述。
[0091][0092]
对于tail节点:
[0093]
关于m的更新,每出现一个新事件会导致m自加一,即m++。
[0094]
关于n的更新,分两种情况,第一种情况是对于只涉及事件处理环节的节点,n总是为0,即n≡0;第二种情况是,对于涉及媒体处理环节的节点,每处理一帧,如果m不变,n++,如果m增加,则n=1(即新事件的首帧);处理方法跟非tail节点一致。更新过程如下所述。
[0095]
[0096][0097]
服务器可以将包含四元组数据的日志发送给终端设备,终端设备可以分析该日志,得到四元组时间戳的原始数据表格,其中,日志数据量非常小。
[0098]
举例说明:如下表1展示的是一个m=1事件对应的视频帧在8个处理环节上时间戳,其中p1–
p2只涉及事件处理,不涉及媒体处理。其中,四元组中t为了便于区分,还是用表示。
[0099]
表1
[0100][0101]
则每个处理环节的时延如下表2所示。
[0102]
表2
[0103]
[0104][0105]
事件的端到端时延为通过对多个事件的δtm做滤波处理(例如下面的中值滤波算法),可以估算出平均的δt
e2e
,δt
e2e
=median(δtm),m∈[1,m],m是测试中触发事件的总数。
[0106]
本技术实施例中的端到端时延还可以是由硬件固有时延和软件可度量时延两部分时延累加得到,以云游戏为例,如图6所示,硬件固有时延可以是输入事件检测和画面显示时延,分别通过高速相机及第三方测试设备标定得到,软件可度量类型时延包括终端设备的触发事件侦听、用户事件发送、视频流接收和视频解码,服务器的用户事件接收、用户事件解码、用户事件注入、用户事件侦听、游戏逻辑、渲染指令、抓图、抓图格式转换、视频流编码和视频流发送,通过的方式完成时延度量。其中,终端设备的触发事件侦听和用户事件发送都为第一处理环节,终端设备的视频流接收和视频解码都为第二处理环节,服务器的用户事件接收、用户事件解码、用户事件注入、用户事件侦听、游戏逻辑、渲染指令、抓图、抓图格式转换、视频流编码和视频流发送都为第三处理环节。其中,硬件固有时延标定做好之后,对于同型号云游戏客户端,只需要把标定值存入时延度量工具中,不用再做频繁重复度量。
[0107]
本技术实施例中,第三度量节点还可以分成三个链表,服务器会启动2个进程,分别是虚拟移动基础架构(virtual mobile infrastructure,vmi)代理(agent)和视频(video)agent。其中,用户事件接收、用户事件解码、用户事件注入、抓图、抓图格式转换在vmi agent进程创建,视频流编码和视频流发送在video agent进程创建,vmi agent和video agent的度量节点之间可以通过ipc来做进程间交互访问。
[0108]
用户事件侦听、游戏逻辑和渲染指令是游戏应用程序中完成,为了不增加vmi server软件开发工具包(software development kit,sdk)的接口,用户事件侦听、游戏逻辑和渲染指令对应的度量节点及链表直接在游戏应用程序中构建并采集数据,所以多个第三处理环节最终被拆成3个链表,其中每个链表都包括一对head和tail。
[0109]
本技术实施例中,对于服务器侧获知当前的视频帧是否为触发事件的首帧,可以通过抓图环节确定。示例性的,当处理首帧画面时,在该画面上的某个区域增加一个特殊的标识,例如新增一个纯色矩形区域或者肉眼无法看出的标识,当抓图环节读取画面之后,检测该区域像素的颜色是否均是该纯色或者预设的标识,如果检测成功则认为该帧是一个触发事件对应的首帧画面。
[0110]
本技术实施例中,终端设备和服务器之间还需要进行时钟同步,其中,时钟同步采用精确时间协议(precision time protocol,ptp)协议完成,遵从ieee1588v2协议。
[0111]
本技术实施例中,多个第一处理环节构成的链表、多个第二处理环节构成的链表和多个第三处理环节构成的链表在逻辑上可以属于同一链表。
[0112]
本技术实施例中,对于终端设备和服务器之间的时延的测试方法如下所述。
[0113]
1.配置测试参数(测试时长,手动/自动,触控时间的产生间隔,硬件固有时延标定值等)。
[0114]
2.为每个处理环节创建一个链表度量节点,为每个度量节点创建四
个参数做初始化。
[0115]
3.当每个处理环节处理完成之后,更新本节点对应的数据。
[0116]
4.测试时长是否达到配置条件?“是”则转第5步;“否”则转第3步。
[0117]
5.停止数据更新。
[0118]
6.日志保存。
[0119]
7.通过对日志的分析,计算得到每个处理环节引入的时延及终端设备到服务器之间的端到端时延。
[0120]
8.时延结果展示。
[0121]
9.是否进行下一次测试?“是”:跳转到第2步;“否”跳转第10步结束。
[0122]
10.结束。
[0123]
本技术实施例中,终端设备基于触发事件执行多个第一处理环节,每个第一处理环节上的第一度量节点可以监测该第一处理环节处理完成时的时间戳,终端设备可以根据多个第一处理环节的时间戳确定各个第一处理环节的时延,并展示该时延,可以提供精度高的时延分析。
[0124]
上面讲述了时延展示的方法,下面对执行该时延展示的装置进行描述。
[0125]
请参阅图7,如图7所示为本技术实施例提供的一种时延展示装置的结构示意图,该装置70包括:
[0126]
获取单元701,用于获取触发事件;
[0127]
处理单元702,用于根据触发事件执行多个第一处理环节,多个第一处理环节中的每个第一处理环节对应一个第一度量节点,每个第一度量节点用于采集每个第一度量节点对应的第一处理环节的第一处理信息,第一处理信息包括第一时间戳,第一时间戳指示第一处理环节处理完成时的时间点;
[0128]
确定单元703,用于根据多个第一处理信息中的第一时间戳确定每个第一处理环节的时延;
[0129]
展示单元704,用于展示每个第一处理环节的时延。
[0130]
可选的,处理单元702还用于:
[0131]
根据多个第一处理环节生成用户事件;
[0132]
装置还包括收发单元705,收发单元705具体用于:
[0133]
将用户事件发送给服务器;
[0134]
接收来自服务器的数据包,数据包为服务器根据用户事件生成的;
[0135]
处理单元702还用于:根据数据包执行多个第二处理环节,第二处理环节中的每个第二处理环节对应一个第二度量节点,每个第二度量节点用于采集每个第二度量节点对应的第二处理环节的第二处理信息,第二处理信息包括第二时间戳,第二时间戳指示第二处理环节处理完成时的时间点;
[0136]
确定单元703还用于:根据多个第二处理信息中的第二时间戳确定每个第二处理环节的时延;
[0137]
展示单元704还用于:展示每个第二处理环节的时延。
[0138]
可选的,每个第一处理环节的第一处理信息还包括第一事件标识、第一视频帧标识和第一处理环节标识,第一事件标识指示当前的触发事件,第一视频帧标识指示当前的
视频帧,第一处理环节标识指示当前的第一处理环节;
[0139]
确定单元703具体用于:
[0140]
根据多个第一处理信息中相同的第一事件标识和第一视频帧标识对应的第一时间戳,确定第一处理环节标识指示的第一处理环节的时延。
[0141]
可选的,展示单元704还用于:
[0142]
展示每个第一处理环节的时延对应的第一事件标识、第一视频帧标识和第一处理环节标识。
[0143]
可选的,每个第二处理环节的第二处理信息还包括第二事件标识、第二视频帧标识和第二处理环节标识,第二事件标识指示当前的触发事件,第二视频帧标识指示当前的视频帧,第二处理环节标识指示当前的第二处理环节;
[0144]
处理单元702还用于:
[0145]
根据多个第二处理信息中相同的第二事件标识和第二视频帧标识对应的时间戳,确定第二处理环节标识指示的第二处理环节的时延。
[0146]
可选的,展示单元704还用于:
[0147]
展示每个第二处理环节的时延对应的第二事件标识、第二视频帧标识和第二处理环节标识。
[0148]
可选的,收发单元705还用于:
[0149]
接收来自服务器的多个第三处理信息,多个第三处理信息为服务器中多个第三度量节点生成的,多个第三度量节点中每个第三度量节点对应一个第三处理环节,多个第三处理环节为服务器根据用户事件执行的,每个第三处理信息包括第三时间戳,第三时间戳指示第三处理环节处理完成时的时间点;
[0150]
确定单元703还用于:根据多个第三处理信息中的第三时间戳确定每个第三处理环节的时延。
[0151]
可选的,每个第三处理环节的第三处理信息还包括第三事件标识、第三视频帧标识和第三处理环节标识,第三事件标识指示当前的触发事件,第三视频帧标识指示所当前的视频帧,第三处理环节标识指示当前的第三处理环节;
[0152]
确定单元703还用于:
[0153]
根据多个第三处理信息中相同的第三事件标识和第三视频帧标识对应的时间戳,确定第三处理环节标识指示的第三处理环节的时延。
[0154]
可选的,展示单元704还用于:
[0155]
展示每个第三处理环节的时延对应的第三事件标识、第三视频帧标识和第三处理环节标识。
[0156]
可选的,确定单元703还用于:
[0157]
根据每个第一处理环节的时延、每个第二处理环节的时延、每个第三处理环节的时延和硬件标定时延,确定端到端时延;
[0158]
展示单元704还用于:展示端到端时延。
[0159]
请参阅图8,如图8所示为本技术实施例提供的一种时延展示装置的结构示意图,该装置80包括:
[0160]
收发单元801,用于接收来自终端设备的用户事件,用户事件由终端设备根据触发
component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0170]
装置80中的收发单元801相当于通信装置90中的通信接口902,装置70中的处理单元802相当于通信装置90中的处理器901。
[0171]
本实施例的通信装置100可对应于上述图2方法实施例中的服务器,该通信装置100中的通信接口1002可以实现上述图2方法实施例中的服务器所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
[0172]
在本技术的另一实施例中,还提供一种确定机可读存储介质,确定机可读存储介质中存储有确定机执行指令,当设备的处理器执行该确定机执行指令时,设备执行上述图2方法实施例中的终端设备所执行的时延展示方法的步骤。
[0173]
在本技术的另一实施例中,还提供一种确定机可读存储介质,确定机可读存储介质中存储有确定机执行指令,当设备的处理器执行该确定机执行指令时,设备执行上述图2方法实施例中的服务器所执行的时延展示方法的步骤。
[0174]
在本技术的另一实施例中,还提供一种确定机程序产品,该确定机程序产品包括确定机执行指令,该确定机执行指令存储在确定机可读存储介质中;当设备的处理器执行该确定机执行指令时,设备执行上述图2方法实施例中的终端设备所执行的时延展示方法的步骤。
[0175]
在本技术的另一实施例中,还提供一种确定机程序产品,该确定机程序产品包括确定机执行指令,该确定机执行指令存储在确定机可读存储介质中;当设备的处理器执行该确定机执行指令时,设备执行上述图2方法实施例中的服务器所执行的时延展示方法的步骤。
[0176]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0177]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0178]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0179]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0180]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上
或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1