应用性能数据收集系统、方法、代理客户端及相关服务器与流程

文档序号:11877986阅读:235来源:国知局
应用性能数据收集系统、方法、代理客户端及相关服务器与流程

本发明涉及数据收集技术领域,具体涉及一种应用性能数据收集系统、方法、代理客户端及相关服务器。



背景技术:

随着Android、IOS等智能操作系统的发展,装载于移动终端上的应用(如游戏、视频等应用)越来越多,移动终端如智能手机、平板电脑等。由于应用的开发问题,应用与终端的兼容问题等,应用在终端上运行时,往往会存在性能缺陷,性能缺陷如应用运行卡顿、应用运行所占用的内存过高、CPU过高等。为利于应用的改进、提升应用的运行流畅度,应用在终端上运行时,往往需要收集应用运行时相应的CPU使用数据、内存使用数据、渲染数据、资源数据等应用性能数据,通过收集的应用性能数据为应用的性能缺陷分析和应用改进提供数据支持。

目前的应用性能数据收集方式,主要通过应用的应用客户端实现;应用在终端上运行时,应用客户端可收集CPU、内存为支持应用运行的使用数据、及应用运行需要的渲染数据、资源数据等,从而收集得到应用性能数据;然而,本发明的发明人发现,目前的应用性能数据收集方式中,应用客户端仅有收集应用性能数据的功能,而无法较为全面的保存应用性能数据,这使得分析所用的应用性能数据并不全面,导致分析的准确性较低;因此如何较为全面的保存所收集的应用性能数据,成为了本领域技术人员需要考虑的问题。



技术实现要素:

有鉴于此,本发明实施例提供一种应用性能数据收集系统、方法、代理客户端及相关服务器,以较为全面的保存所收集的应用性能数据。

为实现上述目的,本发明实施例提供如下技术方案:

一种应用性能数据收集系统,包括:代理客户端,应用客户端,代理服务器和分析服务器;其中,所述代理客户端和应用客户端装载于同一终端中;

所述代理客户端用于,与所述应用客户端建立进程间通信连接,及与代理服务器建立通信连接;通过进程间通信,向所述应用客户端传输应用性能数据收集指令;通过进程间通信,接收所述应用客户端收集的与所述应用性能数据收集指令相应的应用性能数据;将所述应用性能数据发送给所述代理服务器;

所述应用客户端用于,通过进程间通信接收所述代理客户端传输的应用性能数据收集指令,收集相应的应用性能数据,并通过进程间通信将所收集的应用性能数据传输给所述代理客户端;

所述代理服务器用于,与分析服务器建立通信连接;获取所述代理客户端发送的应用性能数据;将所述应用性能数据发送给所述分析服务器;

所述分析服务器用于,接收所述代理服务器发送的应用性能数据;分析编译所述应用性能数据,在数据库中保存分析编译后的应用性能数据。

本发明实施例还提供一种应用性能数据收集方法,应用于代理客户端,所述方法包括:

与本地的应用客户端建立进程间通信连接,及与代理服务器建立通信连接;所述代理客户端和所述应用客户端装载于同一终端中;

通过进程间通信,向所述应用客户端传输应用性能数据收集指令;

通过进程间通信,接收所述应用客户端收集的与所述应用性能数据收集指令相应的应用性能数据;

将所述应用性能数据通过所述代理服务器发送给分析服务器,以便所述分析服务器分析编译所述应用性能数据,并使得所述分析服务器在数据库中保存分析编译后的应用性能数据。

本发明实施例还提供一种应用性能数据收集方法,应用于分析服务器,所述方法包括:

与代理服务器建立通信连接;

接收所述代理服务器发送的应用性能数据;所述应用性能数据由终端的应用客户端收集并传输给终端的代理客户端,以由终端的代理客户端将所述应用性能数据发送给所述代理服务器;

分析编译所述应用性能数据,在数据库中保存分析编译后的应用性能数据。

本发明实施例还提供一种应用性能数据收集方法,应用于web服务器,所述方法包括:

请求数据库中保存的应用性能相关数据;

以图表的形式,将从数据库获取的应用性能数据按照时间顺序进行展示。

本发明实施例还提供一种代理客户端,包括:

第一通信连接模块,用于与本地的应用客户端建立进程间通信连接,及与代理服务器建立通信连接;其中,所述代理客户端和应用客户端装载于同一终端中;

指令传输模块,用于通过进程间通信,向所述应用客户端传输应用性能数据收集指令;

性能数据第一接收模块,用于通过进程间通信,接收所述应用客户端收集的与所述应用性能数据收集指令相应的应用性能数据;

性能数据第一发送模块,用于将所述应用性能数据通过所述代理服务器发送给分析服务器,以便所述分析服务器分析编译所述应用性能数据,并使得所述分析服务器在数据库中保存分析编译后的应用性能数据。

本发明实施例还提供一种分析服务器,包括:

第二通信连接模块,用于与代理服务器建立通信连接;

性能数据第二接收模块,用于接收所述代理服务器发送的应用性能数据;所述应用性能数据由终端的应用客户端收集并传输给终端的代理客户端,以由终端的代理客户端将所述应用性能数据发送给所述代理服务器;

编译及保存模块,用于分析编译所述应用性能数据,在数据库中保存分析编译后的应用性能数据。

本发明实施例还提供一种web服务器,包括:

数据请求模块,用于请求数据库中保存的应用性能相关数据;

展示模块,用于以图表的形式,将从数据库获取的应用性能数据按照时间顺序进行展示。

基于上述技术方案,本发明实施例中终端的应用客户端可在代理客户端的控制下,不断的收集应用性能数据;且所收集的应用性能高数据均可被代理客户端和代理服务器转发给分析服务器,由分析服务器分析编译后不断地保存在数据库中,因此数据库中保存的应用性能数据将较为全面,实现较为全面的保存应用性能数据的目的。而基于数据库中保存的应用性能数据进行应用的性能缺陷分析,可使得分析结果更为准确、全面。可见,本发明实施例可实现较为全面的保存所收集的应用性能数据的目的,且可为提升应用的性能缺陷分析结果的准确性、全面性提供可能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的应用性能数据收集系统的架构示意图;

图2为本发明实施例提供的应用性能数据收集方法的信令流程图;

图3为本发明实施例提供的应用性能数据收集方法的另一信令流程图;

图4为本发明实施例提供的应用性能数据收集方法的再一信令流程图;

图5为本发明实施例提供的应用性能数据收集方法的又一信令流程图;

图6为本发明实施例提供的应用性能数据收集方法的又另一信令流程图;

图7为以各类型应用性能数据的窗口,展示各类型的应用性能数据的示意图;

图8为实现Unity游戏性能数据收集的系统架构示意图;

图9为游戏性能数据的整体概述示意图;

图10为CPU相关的游戏性能数据的概述示意图;

图11为耗时函数分析示意图;

图12为渲染数据类型的游戏性能数据的概述示意图;

图13为代理客户端的操作界面的示意图;

图14为本发明实施例提供的代理客户端的结构框图;

图15为本发明实施例提供的分析服务器的结构框图;

图16为本发明实施例提供的web服务器的结构框图;

图17为本发明实施例提供的代理服务器的结构框图;

图18为本发明实施例提供的应用性能数据收集系统的另一架构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的应用性能数据收集系统的架构示意图,图1所示应用性能数据收集系统可用于实施本发明实施例提供的应用性能数据收集方法;参照图1,该应用性能数据收集系统的架构主要包括:

终端10和服务器20;其中,终端10中装载有应用客户端11和代理客户端12;服务器20可以包括:代理服务器21和分析服务器22;代理服务器21和分析服务器22可以属于同一服务器,也可以是独立的不同服务器;

在本发明实施例中,应用客户端主要实现游戏、视频等终端应用的运行,同时可受代理客户端的控制收集应用性能数据,并将收集的应用性能数据通过进程间通信传输给代理客户端;

代理客户端主要与代理服务器相配合,在应用客户端和分析服务器之间实现应用性能数据的中转传输;具体的,代理客户端可控制应用客户端收集应用性能数据,并通过进程间通信接收应用客户端收集的应用性能数据,将所接收的应用性能数据通过代理服务器发送给分析服务器;

代理服务器主要负责将代理客户端发送的应用性能数据转发给分析服务器;

分析服务器主要负责所接收的应用性能数据的编译分析,并在数据库中保存编译分析后的应用性能数据;

在本发明实施例中,终端可以认为是手机、平板电脑等移动设备,终端内可以装载多个客户端;服务器可以是网络侧的服务设备;但值得注意的是,服务器也可以通过PC(个人计算机)端设备实现。

结合图1所示应用性能数据收集系统的架构,图2示出了本发明实施例提供的应用性能数据收集方法的信令流程图,参照图2,该流程可以包括:

步骤S10、代理客户端与代理服务器建立通信连接;

可选的,代理客户端与代理服务器之间可以建立网络socket(套接字)连接。

步骤S11、代理客户端与应用客户端建立进程间通信连接;

可选的,代理客户端与应用客户端之间可以建立本地socket连接;本发明实施例主要有网络socket连接和本地socket连接;网络socket连接可以认为是,使用socket将不同设备间的进程建立通信连接;本地socket连接可以认为是,使用socket将同一设备上的不同进程建立通信连接,即进程间通信连接的一种形式;

可选的,步骤S10和步骤S11之间可以没有明显的先后顺序。

步骤S12、代理客户端通过进程间通信,向应用客户端传输应用性能数据收集指令;

可选的,代理客户端可以在应用的运行过程中,向应用客户端发送应用性能数据收集指令;代理客户端可以是定时向应用客户端发送应用性能数据收集指令,也可以是受用户设定,向应用客户端发送应用性能数据收集指令。

步骤S13、应用客户端响应所述应用性能数据收集指令,收集相应的应用性能数据;

步骤S14、应用客户端通过进程间通信,将所述应用性能数据传输给代理客户端;

步骤S15、代理客户端将所述应用性能数据发送给代理服务器;

步骤S16、代理服务器将所述应用性能数据发送给分析服务器;

可选的,分析服务器与代理服务器可预先建立通信连接;如分析服务器与代理服务器间可建立socket连接。

步骤S17、分析服务器分析编译所述应用性能数据,并在数据库中保存分析编译后的应用性能数据。

可以看出,本发明实施例提供的应用性能数据收集方法中,终端可通过代理客户端与代理服务器建立通信连接,且终端内的代理客户端与应用客户端可建立进程间通信连接;进而终端可通过代理客户端控制应用客户端进行应用性能数据的收集、终端的应用客户端收集应用性能数据并传输给代理客户端后,终端可通过代理客户端将所述应用性能数据传输给代理服务器;而代理服务器可将所述应用性能数据转发给分析服务器,由分析服务器分析编译所述应用性能数据,并将分析编译后的应用性能数据保存在数据库中,实现所收集的应用性能数据的保存。

本发明实施例中终端的应用客户端可在代理客户端的控制下,不断的收集应用性能数据;且所收集的应用性能高数据均可被代理客户端和代理服务器转发给分析服务器,由分析服务器分析编译后不断地保存在数据库中,因此数据库中保存的应用性能数据将较为全面,实现较为全面的保存应用性能数据的目的。而基于数据库中保存的应用性能数据进行应用的性能缺陷分析,可使得分析结果更为准确、全面。可见,本发明实施例可实现较为全面的保存所收集的应用性能数据的目的,且可为提升应用的性能缺陷分析结果的准确性、全面性提供可能。

可选的,本发明实施例可以通过socket方式实现通信连接的建立;图3示出了本发明实施例提供的应用性能数据收集方法的另一信令流程图,参照图3,该流程可以包括:

步骤S20、代理客户端与代理服务器建立网络socket连接;

代理客户端可与代理服务器建立网络socket连接,实现代理客户端与代理服务器间通信连接的建立;

一般认为socket连接的建立,主要是由socket的客户端向socket的服务端发起;可选的,在本发明实施例中,代理客户端与代理服务器建立socket连接的过程中,代理客户端可以认为是socket的客户端,代理服务器可以认为是socket的服务端;

站在代理客户端的角度,本发明实施例可创建socket的客户端,向作为socket的服务端的代理服务器发起网络socket连接,从而建立与所述代理服务器的网络socket连接;

相应的,站在代理服务器的角度,代理服务器可创建socket的服务端,接收作为socket的客户端的所述代理客户端发起的网络socket连接,从而建立与所述代理客户端的网络socket连接。

步骤S21、代理客户端与应用客户端之间建立本地socket连接;

代理客户端与应用客户端之间可建立本地socket连接,实现代理客户端与应用客户端间进程间通信连接的建立;

可选的,在本发明实施例中,代理客户端与应用客户端之间建立本地socket连接的过程中,代理客户端可以认为是socket的客户端,应用客户端可以认为是socket的服务端;

站在代理客户端的角度,本发明实施例可创建socket的客户端,向作为socket的服务端的所述应用客户端发起本地socket连接,从而建立与所述应用客户端的本地socket连接,以与所述应用客户端建立进程间通信连接;

相应的,应用客户端可作为socket的服务端,接收所述应用客户端发起的本地socket连接,建立与所述应用客户端的本地socket连接;

可选的,步骤S20和步骤S21之间可以没有明显的先后顺序。

步骤S22、代理客户端通过进程间通信,向应用客户端传输应用性能数据收集指令;

步骤S23、应用客户端响应所述应用性能数据收集指令,收集相应的应用性能数据;

步骤S24、应用客户端通过进程间通信,将所述应用性能数据传输给代理客户端;

步骤S25、代理客户端将所述应用性能数据发送给代理服务器;

步骤S26、代理服务器与分析服务器间建立socket连接;

代理服务器与分析服务器间可建立socket连接,以实现代理服务器与分析服务器间通信连接的建立;

可选的,步骤S26可以预执行,而不在步骤S25之后执行。

可选的,在本发明实施例中,分析服务器可以认为是socket的客户端,代理服务器可以认为是socket的服务端;

站在代理服务器的角度,代理服务器可创建socket的服务端,接收作为socket的客户端的所述分析服务器发起的socket连接,建立与所述分析服务器的socket连接;可选的,一方面,如果所述代理服务器和分析服务器属于同一服务器,则代理服务器可接收所述分析服务器发起的本地socket连接;另一方面,如果所述代理服务器和分析服务器为独立的不同服务器,则代理服务器可接收所述分析服务器发起的网络socket连接;

相应的,站在分析服务器的角度,分析服务器可创建socket的客户端,向作为socket的服务端的所述代理服务器发起socket连接,建立与所述代理服务器的socket连接,以与所述代理服务器建立通信连接;可选的,一方面,如果所述代理服务器和分析服务器属于同一服务器,则分析服务器可向所述代理服务器发起本地socket连接;另一方面,如果所述代理服务器和分析服务器为独立的不同服务器,则分析服务器可向所述代理服务器发起网络socket连接。

步骤S27、代理服务器将所述应用性能数据发送给分析服务器;

步骤S28、分析服务器分析编译所述应用性能数据,并在数据库中保存分析编译后的应用性能数据。

若站在代理客户端的角度看终端的执行内容,则本发明实施例提供的应用性能数据收集方法可以具有如图4所示信令流程,参照图4,该流程可以包括:

步骤S30、代理客户端与代理服务器建立通信连接;

步骤S31、代理客户端与本地的应用客户端建立进程间通信连接;

可选的,步骤S30和步骤S31之间可以没有明显先后顺序,即终端的代理客户端可与本地的应用客户端建立进程间通信连接,及与代理服务器建立通信连接;

可选的,终端的代理客户端可以创建socket的客户端,从而向作为socket的服务端的所述应用客户端发起本地socket连接,建立与所述应用客户端的本地socket连接,以与所述应用客户端建立进程间通信连接;及终端的代理客户端可向作为socket的服务端的代理服务器发起socket连接,建立与所述代理服务器的socket连接,以与所述代理服务器建立通信连接。

步骤S32、代理客户端通过进程间通信,向所述应用客户端传输应用性能数据收集指令;

步骤S33、代理客户端通过进程间通信,接收所述应用客户端收集的与所述应用性能数据收集指令相应的应用性能数据;

步骤S34、代理客户端将所述应用性能数据发送给代理服务器;

步骤S35、代理服务器将所述应用性能数据发送给分析服务器;

步骤S36、分析服务器分析编译所述应用性能数据,并在数据库中保存分析编译后的应用性能数据。

可选的,终端的代理客户端在向应用客户端传输应用性能数据收集指令时,可以指定需收集的应用性能数据的类型;具体的,代理客户端可通过进程间通信,向所述应用客户端传输应用性能数据收集指令,所述应用性能数据收集指令可以包括:需收集的应用性能数据的类型信息;

相应的,应用客户端在接收应用性能数据收集指令后,可根据所述类型信息收集相应的应用性能数据;在所述应用客户端收集与所述类型信息相应的应用性能数据后,代理客户端可通过进程间通信接收所述应用客户端传输的与所述类型信息相应的应用性能数据。

可选的,需收集的应用性能数据的类型信息可以预设定,也可以根据实际情况调整,如本发明实施例可设定仅收集应用运行过程中CPU相应的应用性能数据,则本发明实施例可设定需收集的应用性能数据的类型信息为CPU相应的应用性能数据;

需收集的应用性能数据的类型信息可以包括至少一类的应用性能数据,如应用运行过程中CPU相应的应用性能数据,应用运行过程中内存相应的应用性能数据,应用运行过程相应的渲染数据,应用运行过程相应的资源数据等之中的至少一类应用性能数据。

可选的,本发明实施例除通过应用客户端收集应用性能数据外,还可通过终端的代理客户端实现应用性能相关数据的收集,应用性能相关数据如应用运行过程中内存的PSS,测试进程的CPU使用率占比,终端配置信息,应用名称、应用开发版本,应用画面截图等中的至少一类数据;

终端的代理客户端收集的应用性能相关数据可随同所收集的应用性能数据,一同传输给代理服务器;由代理服务器将应用性能相关数据和应用性能数据同时传输给分析服务器,以使得分析服务器同时分析编译应用性能相关数据和应用性能数据,并将分析编译后的应用性能相关数据和应用性能数据同时保存在数据库中;

相应的,图5示出了本发明实施例提供的应用性能数据收集方法的又一信令流程图,参照图5,该流程可以包括:

步骤S40、代理客户端与代理服务器建立通信连接;

步骤S41、代理客户端与本地的应用客户端建立进程间通信连接;

步骤S42、代理客户端通过进程间通信,向所述应用客户端传输应用性能数据收集指令;及通过adb(调试桥)命令收集应用性能相关数据;

adb的全称为Android Debug Bridge,其起到调试桥的作用;通过adb可以在Eclipse中方便通过DDMS来调试Android程序;在本发明实施例中,终端的代理客户端可通过dab命令调取终端的操作系统接口,从而获取到与应用运行相关的数据文件,从该数据文件中收集得到应用性能相关数据;

具体的,代理客户端可通过adb命令调取所述终端的操作系统接口,且通过所述应用客户端的标识,确定需收集的应用性能相关数据的标识;进而通过所述操作系统接口调取与所述标识相应的数据文件,从该数据文件中收集得到所述应用性能相关数据;

数据文件如终端的配置文件,应用的名称文件,应用开发版本文件等。

步骤S43、代理客户端通过进程间通信,接收所述应用客户端收集的与所述应用性能数据收集指令相应的应用性能数据,并确定收集到的应用性能相关数据;

步骤S44、代理客户端将所述应用性能数据和所述应用性能相关数据发送给代理服务器;

步骤S45、代理服务器将所述应用性能数据和所述应用性能相关数据发送给分析服务器;

即相比上述其他的信令流程,本发明实施例可在将所述应用性能数据通过所述代理服务器发送给分析服务器的同时,还可将所述应用性能相关数据发送给代理服务器;以通过代理服务器将所述应用性能数据和所述应用性能相关数据发送给分析服务器。

步骤S46、分析服务器分析编译所述应用性能数据和所述应用性能相关数据,并在数据库中保存分析编译后的应用性能数据和应用性能相关数据。

可见,分析服务器在分析编译所述应用性能数据的同时,还可分析编译所述应用性能相关数据,且分析服务器在数据库中保存分析编译后的应用性能数据的同时,还可保存分析编译后的应用性能相关数据。

在本发明实施例中,随着应用在终端的运行,应用客户端可不断的收集应用性能数据并通过进程间通信传输给终端的代理客户端,终端的代理客户端也可不断的收集应用性能相关数据;终端的代理客户端可不断的通过socket将应用性能数据和应用性能相关数据传输给代理服务器;代理服务器可不断的通过socker将代理客户端传输的应用性能数据和应用性能相关数据转发给分析服务器;分析服务器不断分析编译应用性能数据和应用性能相关数据,并不断在数据库中保存分析编译后的应用性能数据和应用性能相关数据;那么随着时间的推移和应用的不断运行,数据库中将记录到随时间推移的大量应用性能数据和应用性能相关数据,实现应用性能数据较为全面的保存,为进行应用性能缺陷分析和应用改进提供有利的大数据支持。

可选的,本发明实施例所指的应用可以是基于Unity开发的应用,如Unity游戏应用(即采用Unity开发的游戏应用);Unity是由Unity Technologies开发的一个可创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,Unity一般作为一个全面整合的专业游戏引擎使用;以应用为Unity游戏应用为例,本发明实施例可实现Unity游戏应用的游戏性能数据的收集并保存,

相应的,本发明提供的流程中所指的应用客户端可以是Unity游戏客户端,Unity游戏客户端可收集Unity游戏运行过程中的游戏性能数据;分析服务器可以是Unity Profiler(分析器)服务器,Unity Profiler可以认为是Unity自带的插件,可用于Unity游戏的游戏性能数据的分析编译,甚至是性能缺陷分析;

以Unity游戏应用为例,下表1示出了应用客户端收集的应用性能数据,和代理客户端收集的应用性能相关数据的可选示例,可参照。

表1

可选的,若站在代理服务器的角度描述本发明实施例提供的应用性能数据收集方法,则代理服务器可与终端的代理客户端建立通信连接,及与分析服务器建立通信连接;代理服务器可获取所述终端的代理客户端发送的应用性能数据,所述应用性能数据由终端的应用客户端收集并传输给终端的代理客户端,以由终端的代理客户端将所述应用性能数据发送给所述代理服务器;进而代理服务器将所述应用性能数据发送给所述分析服务器,以便所述分析服务器分析编译所述应用性能数据,并使得所述分析服务器在数据库中保存分析编译后的应用性能数据;

可选的,如果代理客户端能够收集应用性能相关数据,则代理服务器还可接收终端的代理客户端收集的应用性能相关数据,所述应用性能相关数据由所述代理客户端通过adb命令收集;进而代理服务器可在将所述应用性能数据发送给所述分析服务器的同时,将所述应用性能相关数据发送给所述分析服务器,以便所述分析服务器在分析编译所述应用性能数据的同时,分析编译所述应用性能相关数据,并使得所述分析服务器在数据库中保存分析编译后的应用性能数据的同时,保存分析编译后的应用性能相关数据。

可选的,若以分析服务器的角度描述本发明实施例提供的应用性能数据收集方法,则分析服务器可与代理服务器建立通信连接;分析服务器可接收所述代理服务器发送的应用性能数据;所述应用性能数据由终端的应用客户端收集并传输给终端的代理客户端,以由终端的代理客户端将所述应用性能数据发送给所述代理服务器;进而分析服务器可分析编译所述应用性能数据,在数据库中保存分析编译后的应用性能数据。

可选的,如果代理客户端能够收集应用性能相关数据,则分析服务器还可接收代理服务器发送的应用性能相关数据,所述应用性能相关数据由所述代理客户端通过adb命令收集后发送给所述代理服务器;从而分析服务器可在分析编译所述应用性能数据的同时,分析编译所述应用性能相关数据,并在数据库中保存分析编译后的应用性能数据的同时,保存分析编译后的应用性能相关数据。

可选的,应用客户端收集的应用性能数据一般是二进制形式的,而二进制形式的数据对于分析人员而言是较难查看、理解的,因此分析服务器在接收到二进制的应用性能数据后,可将应用性能数据分析编译成预定格式的数据,得到分析编译后的应用性能数据;预定格式可以是便于分析人员查看、理解的数据格式,如文本格式;分析服务器对于应用性能相关数据进行分析编译的原理类似。

值得注意的是,目前存在一种应用性能数据收集方式,是将终端的Unity游戏客户端等应用客户端,与PC端的Unity Profile等分析用分析器建立通信连接,从而Unity游戏客户端收集到应用性能数据后传输给Unity Profile,由Unity Profile进行分析;然而,Unity Profile并没有数据保存能力,因此Unity Profile分析得到的数据只能是与Unity游戏客户端一次收集的应用性能数据相应,即Unity Profile一次能够提供的数据范围是Unity游戏客户端一次收集到的应用性能数据范围,而无法进一步提升Unity Profile能够提供的数据范围,来提供更为全面的应用性能数据;

基于此,本发明实施例可通过Unity Profile等分析服务器提供的扩展功能,使得分析服务器具有将编译分析后应用性能数据(或者,应用性能数据和应用性能相关数据)写入数据库中的能力,从而通过数据库不断的保存Unity Profile等分析服务器每次分析编译的结果,保存出更为全面的应用性能数据;

具体的,本发明实施例可通过Unity Profile等分析服务器的扩展功能设置预定写脚本;当分析服务器每次得到分析编译后的应用性能数据时,分析服务器可执行通过扩展功能设置的预定写脚本,定位所述预定写脚本预记录的数据库位置,并执行所述预定写脚本中的写操作,将分析编译后的应用性能数据写入所述数据库中,以不断在数据库中写入分析编译后的应用性能数据,使得数据库可保存较为全面的应用性能数据;将应用性能相关数据保存在数据库的原理类似;

可选的,数据库可以是MYSQL数据库。

可选的,web服务器可请求数据库中保存的应用性能相关数据并进行展示,以便通过展示的应用性能相关数据,进行应用性能缺陷分析;

图6示出了本发明实施例提供的应用性能数据收集方法的又另一信令流程图,参照图6,该流程可以包括:

步骤S50、代理客户端与代理服务器建立通信连接;

步骤S51、代理客户端与应用客户端建立进程间通信连接;

步骤S52、代理客户端通过进程间通信,向应用客户端传输应用性能数据收集指令;

步骤S53、应用客户端响应所述应用性能数据收集指令,收集相应的应用性能数据;

步骤S54、应用客户端通过进程间通信,将所述应用性能数据传输给代理客户端;

步骤S55、代理客户端将所述应用性能数据发送给代理服务器;

步骤S56、代理服务器将所述应用性能数据发送给分析服务器;

步骤S57、分析服务器分析编译所述应用性能数据,并在数据库中保存分析编译后的应用性能数据;

步骤S58、web服务器请求数据库中保存的应用性能数据;

步骤S59、web服务器将从数据库中获取的应用性能数据进行展示。

可选的,web服务器可以图表的形式,将所获取的应用性能数据按照时间顺序进行展示(如按照应用性能数据的收集时间顺序进行展示,应用性能数据的收集时间可在应用性能数据收集的过程时,随同携带在所收集的应用性能数据中);

可选的,应用性能数据可通过窗口的方式进行展示;本发明实施例可在预定整体概述窗口中,对所获取的应用性能数据的整体情况,以设定概述图表进行展示,展示出应用性能数据的整体概述图表;并在各类型应用性能数据的窗口中,以设定图表对相应类型的应用性能数据进行展示,展示出各类型应用性能数据的情况图表;

图7示出了以各类型应用性能数据的窗口,分别展示各类型的应用性能数据的示意图,从图7中可以看出,CPU相应类型的应用性能数据的窗口,内存相应类型的应用性能数据的窗口,渲染数据相应类型的应用性能数据的窗口在一个界面中,但不同类型的应用性能数据,通过不同的窗口展示。

在作应用性能数据展示时,本发明实施例还可基于所展示的应用性能数据给出应用性能数据的缺陷分析结果;可选的,web服务器可从应用性能数据的整体概述图表中,分析存在性能缺陷的应用性能数据段相应的波动情况及时间段;进而分析该时间段下各类型应用性能数据的情况图表,得到该时间段下各类型应用性能数据的波动情况;确定该时间段下波动情况与从所述整体概述图表中分析出的波动情况相应的目标类型应用性能数据;该时间段下的目标类型应用性能数据,可作为应用性能数据的缺陷分析定位结果,以便于分析出应用性能数据的性能缺陷源头。

以某一飞行射击类游戏为例,如果该飞行射击类游戏给用户的直观感受是战斗过程中卡顿明显,则通过本发明实施例可实现游戏过程中应用性能数据的全面保存,并基于所保存的应用性能数据进行分析,发现是由于渲染耗时过高,导致fps过低,造成给玩家卡顿的感觉,从而指引美术人员优化场景内的资源;本发明实施例方案在该飞行射击类游戏的具体应用过程可如下:

本发明实施例可通过图8所示架构,实现飞行射击类游戏的游戏性能数据的收集、保存和展示;

web服务器可从数据库中所保存的游戏性能数据,并通过预定整体概述窗口中所展示的游戏性能数据的整体概述图表,得到整体性能概述结果,如图9所示,游戏战斗过程中时间轴[300,1000],[2100,2800]的fps值较小,整体波动较大;

进而可从CPU相应类型的游戏性能数据的窗口中分析CPU报告;如图10所示,经分析影响游戏fps的主要是游戏的各模块的耗时,从耗时分布可以看出,战斗过程中,脚本和渲染耗时都比较高。定点分析782秒的数据,当前点的平均fps平局值12.1,渲染耗时和脚本耗时都较高,进一步分析782秒,代理客户端在此点收集了10帧的数据,其中,第3帧的耗时最多,进一步分析第3帧的数据,可以查看此帧的函数耗时情况;其中,Camera.Render函数的耗时最多,占比达31.8%;因此可进一步查看Camera.Render整局中的耗时,如图11所示,可以看出此函数每帧耗时集中在[10,20]ms,波动趋势和fps整体波动趋势基本吻合,说明场景内资源存在问题,可指导开发人员排查场景内模型的面数、特效等资源的问题;

再分析从渲染数据类型的游戏性能数据的窗口中分析渲染报告;如图12所示战斗过程中,DrawCall、面数指标的波动与fps的整体波动情况高度吻合,进一步验证了上述得出的结论,即资源的问题导致的fps过低,从而指引美术人员优化场景内的资源。

本发明实施例可实现较为全面的应用性能数据的保存,为从全局、横向比对、纵向比对的角度分析应用性能问题提供了可能;同时,本发明实施例与用户交互的只有代理客户端的操作界面和Web页面,降低了用户使用的门槛,代理客户端的操作界面可如图13所示。

下面对本发明实施例提供的代理客户端进行介绍,图14为本发明实施例提供的代理客户端的结构框图,参照图14,该代理客户端可以包括:

第一通信连接模块100,用于与本地的应用客户端建立进程间通信连接,及与代理服务器建立通信连接;其中,所述代理客户端和应用客户端装载于同一终端中;

指令传输模块110,用于通过进程间通信,向所述应用客户端传输应用性能数据收集指令;

性能数据第一接收模块120,用于通过进程间通信,接收所述应用客户端收集的与所述应用性能数据收集指令相应的应用性能数据;

性能数据第一发送模块130,用于将所述应用性能数据通过所述代理服务器发送给分析服务器,以便所述分析服务器分析编译所述应用性能数据,并使得所述分析服务器在数据库中保存分析编译后的应用性能数据。

可选的,指令传输模块110具体可用于:通过进程间通信,向所述应用客户端传输应用性能数据收集指令,所述应用性能数据收集指令包括:需收集的应用性能数据的类型信息;

性能数据第一接收模块120具体可用于:在所述应用客户端收集与所述类型信息相应的应用性能数据后,通过进程间通信接收所述应用客户端传输的与所述类型信息相应的应用性能数据。

可选的,代理客户端还可通过adb命令收集应用性能相关数据;并在将所述应用性能数据通过所述代理服务器发送给分析服务器的同时,将所述应用性能相关数据通过所述代理服务器发送给分析服务器,以便所述分析服务器在分析编译所述应用性能数据的同时,分析编译所述应用性能相关数据,并使得所述分析服务器在数据库中保存分析编译后的应用性能数据的同时,保存分析编译后的应用性能相关数据。

下面对本发明实施例提供的分析服务器进行介绍;图15为本发明实施例提供的分析服务器的结构框图,参照图15,该分析服务器可以包括:

第二通信连接模块200,用于与代理服务器建立通信连接;

性能数据第二接收模块210,用于接收所述代理服务器发送的应用性能数据;所述应用性能数据由终端的应用客户端收集并传输给终端的代理客户端,以由终端的代理客户端将所述应用性能数据发送给所述代理服务器;

编译及保存模块220,用于分析编译所述应用性能数据,在数据库中保存分析编译后的应用性能数据。

可选的,分析服务器还可用于:

接收所述代理服务器发送的应用性能相关数据,所述应用性能相关数据由所述代理客户端通过adb命令收集后发送给所述代理服务器;在分析编译所述应用性能数据的同时,分析编译所述应用性能相关数据,并在数据库中保存分析编译后的应用性能数据的同时,保存分析编译后的应用性能相关数据。

可选的,编译及保存模块220在分析编译所述应用性能数据时,具体可用于:将二进制格式的应用性能数据进行分析编译,得到预定格式的应用性能数据;所述预定格式为设定的可进行数据展示的格式。

编译及保存模块220在数据库中保存分析编译后的应用性能数据时,具体可用于:当每次得到分析编译后的应用性能数据时,执行通过扩展功能设置的预定写脚本,定位所述预定写脚本预记录的数据库位置,并执行所述预定写脚本中的写操作,将分析编译后的应用性能数据写入所述数据库中,以不断在数据库中写入分析编译后的应用性能数据。

下面对本发明实施例提供的web服务器进行介绍;图16为本发明实施例提供的web服务器的结构框图,参照图16,该web服务器可以包括:

数据请求模块300,用于请求数据库中保存的应用性能相关数据;

展示模块310,用于以图表的形式,将从数据库获取的应用性能数据按照时间顺序进行展示。

可选的,展示模块310具体可用于:在预定整体概述窗口中,对所获取的应用性能数据的整体情况,以设定概述图表进行展示,展示出应用性能数据的整体概述图表;并在各类型应用性能数据的窗口中,以设定图表对相应类型的应用性能数据进行展示,展示出各类型应用性能数据的情况图表。

可选的,web服务器还可用于:从应用性能数据的整体概述图表中,分析存在性能缺陷的应用性能数据段相应的波动情况及时间段;分析该时间段下各类型应用性能数据的情况图表,得到该时间段下各类型应用性能数据的波动情况;确定该时间段下波动情况与从所述整体概述图表中分析出的波动情况相应的目标类型应用性能数据。

下面对本发明实施例提供的代理服务器进行介绍,本发明实施例提供的代理服务器的结构可以如图17所示,包括:

第三通信连接模块400,用于与终端的代理客户端建立通信连接,及与分析服务器建立通信连接;

性能数据获取模块410,用于获取所述终端的代理客户端发送的应用性能数据;所述应用性能数据由终端的应用客户端收集并传输给终端的代理客户端,以由终端的代理客户端将所述应用性能数据发送给所述代理服务器;

性能数据第二发送模块420,用于将所述应用性能数据发送给所述分析服务器,以便所述分析服务器分析编译所述应用性能数据,并使得所述分析服务器在数据库中保存分析编译后的应用性能数据。

可选的,代理服务器还可用于:接收所述终端的代理客户端收集的应用性能相关数据,所述应用性能相关数据由所述代理客户端通过adb命令收集;在将所述应用性能数据发送给所述分析服务器的同时,将所述应用性能相关数据发送给所述分析服务器,以便所述分析服务器在分析编译所述应用性能数据的同时,分析编译所述应用性能相关数据,并使得所述分析服务器在数据库中保存分析编译后的应用性能数据的同时,保存分析编译后的应用性能相关数据。

下面对本发明实施例提供的应用性能数据收集系统进行介绍,该系统的架构可如图1所示,包括:代理客户端12,应用客户端11,代理服务器21和分析服务器22;其中,所述代理客户端和应用客户端装载于同一终端中;

所述代理客户端用于,与所述应用客户端建立进程间通信连接,及与代理服务器建立通信连接;通过进程间通信,向所述应用客户端传输应用性能数据收集指令;通过进程间通信,接收所述应用客户端收集的与所述应用性能数据收集指令相应的应用性能数据;将所述应用性能数据发送给所述代理服务器;

所述应用客户端用于,通过进程间通信接收所述代理客户端传输的应用性能数据收集指令,收集相应的应用性能数据,并通过进程间通信将所收集的应用性能数据传输给所述代理客户端;

所述代理服务器用于,与分析服务器建立通信连接;获取所述代理客户端发送的应用性能数据;将所述应用性能数据发送给所述分析服务器;

所述分析服务器用于,接收所述代理服务器发送的应用性能数据;分析编译所述应用性能数据,在数据库中保存分析编译后的应用性能数据。

可选的,图18示出了本发明实施例提供的应用性能数据收集系统的另一架构示意图,结合图1和图18所示,该系统还可以包括:web服务器30,用于请求数据库中保存的应用性能数据,以图表的形式,将从数据库获取的应用性能数据按照时间顺序进行展示。

值得注意的是,本发明实施例提供的任一应用性能数据收集方法、代理客户端、代理服务器、分析服务器、web服务器,可均基于本发明实施例提供的应用性能数据收集系统实现。

本发明实施例可实现较为全面的应用性能数据的保存,为从全局、横向比对、纵向比对的角度分析应用性能问题提供了可能;同时,本发明实施例中与用户交互的只有代理客户端的操作界面和Web页面,降低了用户使用的门槛。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1