一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种性能优化方法以及相关设备与流程

2022-11-30 07:24:47 来源:中国专利 TAG:


1.本技术涉及人工智能技术领域,尤其涉及一种性能优化方法以及相关设备。


背景技术:

2.目前,电子设备的功能越来越强大,电子设备中安装的应用越来越多。以游戏应用为例,随着游戏画质的提升,游戏玩法、游戏场景的丰富,对于电子设备的性能提出了更高的要求。
3.不同电子设备的硬件芯片在设计上存在差异化,不同硬件芯片对于算法和接口的支持力度和方式不同,这就出现同一款游戏在不同电子设备上的性能存在差异化。例如,游戏应用不能合理的使用电子设备的硬件资源,或者游戏应用实现的调度策略与电子设备预先设置的系统配置策略冲突,或者电子设备系统判断当前系统异常(例如终端的温度异常)触发电子设备管控策略(例如硬件的减频)等,都会出现游戏卡顿,降低游戏的性能,影响用户体验。


技术实现要素:

4.本技术的目的在于提供了一种性能优化方法以及相关设备,该方法用以提升游戏性能。
5.第一方面,本技术提供一种终端的性能优化方法,该方法具体包括:服务器接收来自多个终端的第一运行数据,所述第一运行数据包括所述多个终端在运行第一应用的第一场景时的运行数据,其中,所述多个终端的型号为第一型号;所述服务器根据所述第一型号、所述第一应用的标识信息及所述第一运行数据,确定第一配置参数,所述第一配置参数用于所述第一型号的终端在运行所述第一应用的第一场景时对所述终端进行参数配置;所述服务器向第一终端发送所述第一配置参数,所述第一终端的型号为所述第一型号;所述第一终端接收来自所述服务器的第一配置参数,其中,所述第一配置参数包括所述第一应用的第一场景对应的配置参数;所述第一终端确定运行所述第一应用时的第一场景,并根据所述第一配置参数运行所述第一应用的第一场景。
6.其中,所述第一配置参数可以包括所述第一场景的标识信息,以及与所述第一场景的标识信息对应的如下参数中的一项或多项:中央处理单元cpu运行频点、图形处理器gpu运行频点、cpu大小核的数量、gpu大小、触发温控策略的最高温度或网速优先级。
7.通过上述技术方案,服务器可以针对同款型号、同款应用、以及同款场景推荐用于进行性能优化的配置参数,终端在运行第一应用的过程中,可以基于服务器推荐的配置参数运行第一应用的第一场景,从而能够对第一应用进行性能优化,提升用户体验。
8.以第一应用为游戏类应用为例,终端运行游戏应用的场景1时,游戏界面因高速缓存不足出现卡顿问题,而终端存在可使用的gpu资源;在此情况下,服务器向终端发送的第一配置参数中可以包括gpu大小,如4m的gpu高速缓存,这样,终端根据第一配置参数运行游戏应用的场景1,就可以避免因高速缓存不足出现的卡顿问题,能够合理的使用终端的硬件
资源。
9.又例如,终端运行游戏应用的场景2时,该游戏应用实现的调度策略为cpu大小核各为4个,但终端自身的系统为该游戏应用配置了2个cpu大核和2个cpu小核,这就导致游戏应用实现的调度策略与系统配置策略冲突,降低游戏体验;在此情况下,服务器向终端发送的第一配置参数中可以包括cpu大小核数量(如cpu大小核各为4个),这样,终端根据第一配置参数运行游戏应用的场景2,就可以避免游戏应用实现的调度策略与系统配置策略之间的冲突。
10.再例如,终端运行游戏应用的场景3时,终端壳温高于温控策略的最高温度(如43摄氏度)但未达到50摄氏度,触发温控策略,如强制关闭游戏应用或降低硬件(如cpu、gpu)运行频点等;在此情况下,服务器向终端发送的第一配置参数中可以包括触发温控策略的最高温度,如从原本的43摄氏度升高为50摄氏度,这样,终端基于第一配置参数运行游戏应用的场景3时,终端壳温大于43摄氏度但小于50摄氏度,就不会触发温控策略,从而提升游戏体验。
11.在一种可能的设计中,所述第一场景为所述第一应用在运行过程中的高负载场景。
12.在一种可能的设计中,所述第一应用为游戏类应用。
13.在一种可能的设计中,在服务器向第一终端发送所述第一配置参数之前,该方法还可以包括:所述服务器对所述第一配置参数进行验证,确定所述第一配置参数的验证通过。
14.通过上述设计,服务器可以对第一配置参数进行验证,以确保该第一配置参数能够对第一型号的终端运行第一应用时的第一场景进行有效的性能优化。
15.在一种可能的设计中,所述方法还可以包括:所述第一终端对所述第一配置参数进行验证;若所述第一配置参数的验证未通过,则所述第一终端根据第二配置参数运行所述第一应用的第一场景;若所述第一配置参数的验证通过,则所述第一终端继续根据所述第一配置参数运行所述第一应用的第一场景。进一步,在第一配置参数的验证未通过的情况下,第一终端还可以向服务器发送异常消息。
16.可选的,第二配置参数可以为当前第一终端本地存储的配置参数,例如,该第二配置参数可以是第一终端出厂时默认的配置参数,或者是上一次服务器推荐的配置参数,或者是第一终端系统版本更新后的配置参数,或者是第一应用版本更新后的配置参数等,本技术实施例对此不作限定。
17.通过上述设计,第一终端可以在根据第一配置参数运行第一应用的第一场景时对第一配置参数进行验证,可以确保该第一配置参数能够对自身运行第一应用时的第一场景进行有效的性能优化,从而避免因同型号下的电子设备的个体差异导致的负优化等问题。
18.在一种可能的设计中,在所述服务器向第一终端发送所述第一配置参数之前,所述方法还可以包括:所述第一终端向所述服务器发送第一请求消息,所述第一请求消息包括所述第一型号和所述第一应用的标识信息,所述第一请求消息用于请求获取所述第一配置参数;所述服务器接收来自所述第一终端的所述第一请求消息。
19.通过上述技术方案,终端通过向服务器发送请求消息的方式可以主动获取配置参数。例如,在第一应用启动时,终端可以向服务器发送第一请求消息,以便第一应用的第一
场景可以基于最新的配置参数运行。
20.在一种可能的设计中,在所述第一终端接收来自所述服务器的第一配置参数之前,所述方法还可以包括:所述第一终端根据第二配置参数运行所述第一应用的第一场景;所述第一终端获取第二运行数据,所述第二运行数据包括所述第一终端在根据所述第二配置参数运行所述第一应用的第一场景时的运行数据,所述第一运行数据包括所述第二运行数据;所述第一终端向所述服务器发送所述第二运行数据。
21.通过上述技术方案,第一终端可以将高负载场景下的运行数据上报给服务器,这样服务器就可以收集同款型号、同款应用下的同一场景对应的大量的运行数据。进一步,服务器可以基于这些大量的运行数据为第一型号的终端推荐运行第一应用的第一场景时的配置参数。
22.在一种可能的设计中,所述第一运行数据可以包括第一型号,第一应用的标识信息,场景参数和性能参数;其中,所述场景参数包括如下参数中的一项或多项:第一场景出入标识、场景类型或实例数据;所述性能参数包括如下参数中的一项或多项:首帧的渲染时长、平均帧率、抖动率、低帧率比率、耗电量、设备壳温或丢帧数。
23.第二方面,本技术提供一种终端的性能优化方法,该方法可应用于第一终端,第一终端的型号为第一型号。该方法具体可包括:第一终端接收来自服务器的第一配置参数,所述第一配置参数用于所述第一型号的终端在运行第一应用的第一场景时对所述终端进行参数配置,其中,所述第一配置参数是所述服务器根据所述第一型号、所述第一应用的标识信息及第一运行数据而确定的,所述第一运行数据包括多个终端在运行所述第一应用的第一场景时的运行数据,其中,所述多个终端的型号为所述第一型号;确定运行所述第一应用时的第一场景;以及,根据所述第一配置参数运行所述第一应用的第一场景。
24.在一种可能的设计中,所述第一场景为所述第一应用在运行过程中的高负载场景。
25.在一种可能的设计中,所述第一应用为游戏类应用。
26.在一种可能的设计中,所述方法还可以包括:对所述第一配置参数进行验证;若所述第一配置参数的验证未通过,则根据第二配置参数运行所述第一应用的第一场景;若所述第一配置参数的验证通过,则继续根据所述第一配置参数运行所述第一应用的第一场景。进一步,当第一配置参数的验证未通过时,第一终端还可以向服务器发送异常消息。
27.在一种可能的设计中,对所述第一配置参数进行验证,可以为:采集根据所述第一配置参数运行所述第一应用的第一场景时的第一性能参数;根据第二性能参数和所述第一性能参数对所述第一配置参数进行验证,其中,所述第二性能参数为所述第一终端根据第二配置参数运行所述第一应用的第一场景时的性能参数。
28.通过上述技术方案,第一终端通过对比同一场景下第一配置参数对应的性能参数和第二配置参数对应的性能参数,可以确定该第一配置参数是否对第一应用的第一场景的性能进行了有效优化。例如,若第一终端确定进行了有效优化,即验证通过,则第一终端可以基于第一配置参数继续运行第一应用的第一场景;反之,第一终端可以基于第二配置参数运行第一应用,这样可以确保对第一应用的第一场景的性能进行合理的优化,能够避免负优化的问题,提高用户体验。
29.在一种可能的设计中,在接收来自服务器的第一配置参数之前,所述方法还可以
包括:第一终端根据所述第二配置参数运行所述第一应用的第一场景;获取第二运行数据,所述第二运行数据包括所述第一终端在根据第二配置参数运行所述第一应用的第一场景时的运行数据;以及向所述服务器发送所述第二运行数据。
30.在一种可能的设计中,在接收来自服务器的第一配置参数之前,所述方法还可以包括:第一终端向所述服务器发送第一请求消息,所述第一请求消息包括所述第一型号和所述第一应用的标识信息,所述第一请求消息用于请求获取所述第一配置参数。
31.在一种可能的设计中,所述第一配置参数包括所述第一场景的标识信息,以及所述第一场景的标识信息所对应的如下参数中的一项或多项:中央处理单元cpu运行频点、图形处理器gpu运行频点、cpu大小核的数量、gpu大小、触发温控策略的最高温度或网速优先级。
32.在一种可能的设计中,所述第一运行数据可以包括所述第一型号,所述第一应用的标识信息,场景参数和性能参数;其中,所述场景参数包括如下参数中的一项或多项:第一场景出入标识、场景类型或实例数据;所述性能参数包括如下参数中的一项或多项:首帧的渲染时长、平均帧率、抖动率、低帧率比率、耗电量、设备壳温或丢帧数。
33.第三方面,本技术提供一种性能优化方法,该方法可应用于服务器。该方法具体可包括:服务器接收来自多个终端的第一运行数据,所述第一运行数据包括所述多个终端在运行第一应用的第一场景时的运行数据,其中,所述多个终端的型号为第一型号;根据所述第一型号、所述第一应用的标识信息及所述第一运行数据,确定第一配置参数,所述第一配置参数用于所述第一型号的终端在运行所述第一应用的第一场景时对所述终端进行参数配置;以及,向第一终端发送所述第一配置参数,所述第一终端的型号为所述第一型号。
34.在一种可能的设计中,所述第一场景为所述第一应用在运行过程中的高负载场景。
35.在一种可能的设计中,所述第一应用为游戏类应用。
36.在一种可能的设计中,在向第一终端发送所述第一配置参数之前,所述方法还可以包括:对所述第一配置参数进行验证,确定所述第一配置参数的验证通过。
37.在一种可能的设计中,对所述第一配置参数进行验证,可以为:通过模拟所述第一型号的终端,根据所述第一配置参数运行所述第一应用的第一场景;采集根据所述第一配置参数运行所述第一应用的第一场景时的第三性能参数;根据第四性能参数和所述第三性能参数对所述第一配置参数进行验证,其中,所述第四性能参数为根据第三配置参数运行所述第一应用的第一场景时的性能参数。
38.在一种可能的设计中,在向第一终端发送第一配置参数之前,所述方法还可以包括:服务器接收来自所述第一终端的第一请求消息,所述第一请求消息包括所述第一型号和所述第一应用的标识信息,所述第一请求消息用于请求获取所述第一配置参数。
39.在一种可能的设计中,根据所述第一运行数据,确定第一配置参数,可以为:根据第一型号、所述第一应用的标识信息及所述第一运行数据,训练第一参数推荐模型;根据所述第一型号、所述第一应用的标识信息及所述第一参数推荐模型,获取所述第一配置参数。
40.在一种可能的设计中,所述第一配置参数包括所述第一场景的标识信息,以及所述第一场景的标识信息所对应的如下参数中的一项或多项:中央处理单元cpu运行频点、图形处理器gpu运行频点、cpu大小核的数量、gpu大小、触发温控策略的最高温度或网速优先
级。
41.在一种可能的设计中,所述第一运行数据可以包括所述第一型号,所述第一应用的标识信息,场景参数和性能参数;其中,所述场景参数包括如下参数中的一项或多项:第一场景出入标识、场景类型或实例数据;所述性能参数包括如下参数中的一项或多项:首帧的渲染时长、平均帧率、抖动率、低帧率比率、耗电量、设备壳温或丢帧数。
42.第四方面,本技术提供一种通信装置,该通信装置可以包括执行第二方面或者第二方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。例如,该通信装置可以包括处理模块和收发模块。处理模块用于执行第二方面或者第二方面的任意一种可能的设计的方法。收发模块用于实现该通信装置与其它装置之间的数据和/或信令交互等,如接收来自服务器的第一配置参数。
43.第五方面,本技术提供一种通信装置,该通信装置可以包括执行第三方面或者第三方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。例如,该通信装置可以包括处理模块和收发模块。处理模块用于执行第三方面或者第三方面的任意一种可能的设计的方法。收发模块用于实现该通信装置与其它装置之间的数据和/或信令交互等,如向第一终端发送第一配置参数。
44.第六方面,本技术提供一种通信装置,该通信装置可包括一个或多个处理器和存储器。所述存储器用于存储一个或多个计算机程序,所述第一个或多个计算机程序包括指令,当所述指令被所述通信装置执行时,使得所述通信装置执行第二方面或者第二方面的任意一种可能的设计的方法。
45.第七方面,本技术提供一种通信装置,该通信装置可包括一个或多个处理器和存储器。所述存储器用于存储一个或多个计算机程序,所述第一个或多个计算机程序包括指令,当所述指令被所述通信装置执行时,使得所述通信装置执行第三方面或者第三方面的任意一种可能的设计的方法。
46.第八方面,本技术提供一种芯片。该芯片可以与通信装置中的存储器耦合,使得所述芯片在运行时调用所述存储器中存储的程序指令,实现第二方面或者第二方面的任意一种可能的设计的方法。
47.第九方面,本技术提供一种芯片。该芯片可以与通信装置中的存储器耦合,使得所述芯片在运行时调用所述存储器中存储的程序指令,实现第三方面或者第三方面的任意一种可能的设计的方法。
48.第十方面,本技术提供一种通信系统,包括第四方面或第四方面任一种可能设计所述的通信装置和第五方面或第五方面任一种可能设计所述的通信装置,或者包括第六方面或第六方面任一种可能设计所述的通信装置和第七方面或第七方面任一种可能设计所述的通信装置,或者包括第八方面或第八方面任一种可能设计所述的芯片和第九方面或第九方面任一种可能设计所述的芯片。
49.第十一方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在通信装置上运行时,使得所述通信装置执行第二方面或者第二方面的任意一种可能的设计的方法。
50.第十二方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在通信装置上运行时,使得所述通信装置执行第三方面或者
第三方面的任意一种可能的设计的方法。
51.第十三方面,本技术提供一种计算机程序产品,包括指令,当所述指令在计算机上运行时,使得所述计算机执行第二方面或者第二方面的任意一种可能的设计的方法。
52.第十四方面,本技术提供一种计算机程序产品,包括指令,当所述指令在计算机上运行时,使得所述计算机执行第三方面或者第三方面的任意一种可能的设计的方法。
53.第十五方面,本技术还提供一种电子设备,该电子设备包括一个或多个处理器;一个或多个存储器;一个或多个传感器;多个应用;以及一个或多个计算机程序;其中所述一个或多个计算机程序被存储在所述一个或多个存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器调用执行时,使得所述电子设备执行上述第二方面及其第二方面任一可能设计的技术方案。
54.上述第二方面至第十五方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
55.图1为本技术实施例适用的应用场景的一种示意图;
56.图2a为本技术实施例提供的一种服务器的结构示意图;
57.图2b为本技术实施例提供的一种终端的结构示意图;
58.图2c为本技术实施例提供的另一种终端的结构示意图;
59.图3为本技术实施例提供的一种配置参数确定方法的流程示意图;
60.图4为本技术实施例提供的性能优化方法的一种流程示意图;
61.图5a为本技术实施例提供的一种系统架构的示意图;
62.图5b为本技术实施例提供的另一种系统架构的示意图;
63.图6为本技术实施例提供的性能优化方法的另一种流程示意图;
64.图7为本技术实施例提供的性能优化方法的再一种流程示意图。
具体实施方式
65.首先,先对本技术实施例中涉及的部分用语进行解释说明,以便于本领域技术人员容易理解。
66.(1)公测阶段,指游戏应用发布前(或者游戏应用更新后,但还未对更新的内容进行发布)游戏应用的提供商邀请多个用户来体验该游戏应用,然后基于该多个用户体验该游戏应用产生的游戏运行数据对游戏应用进行调试的阶段。
67.现网阶段,指游戏应用发布后(或者游戏应用更新后,并更新的内容发布后)用户对该游戏应用主动进行体验的阶段。
68.(2)本技术实施例涉及的应用程序(application,app),可以简称应用,为能够实现某项或多项特定功能的软件程序。通常,终端中可以安装多个应用,例如,即时通讯类应用、视频类应用、音频类应用、图像拍摄类应用等等。其中,即时通信类应用,例如可以包括短信应用、微信(wechat)、whatsapp messenger、连我(line)、照片分享(instagram)、kakao talk、钉钉等。图像拍摄类应用,例如可以包括相机应用(系统相机或第三方相机应用)。视频类应用,例如可以包括youtube、twitter、抖音、爱奇艺、腾讯视频等等。音频类应用,例如
可以包括酷狗音乐、虾米、qq音乐等等。以下实施例中提到的应用,可以是终端出厂时已安装的应用,也可以是用户在使用终端的过程中从网络下载或其他终端获取的应用。
69.需要说明的是,本技术实施例提供的性能优化方法可以适用于上述游戏类应用,或者其他应用等等,本技术实施例不作限定。下文中以游戏类应用为例进行介绍。本技术涉及的第一应用可称为第一游戏应用。相应的,下文中的第一运行数据可称为第一游戏运行数据,第二运行数据可以称为第二游戏运行数据。
70.(3)本技术实施例涉及的终端,也可以称为电子设备、终端设备等等,本技术对此名称不限定。例如手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,mid)、可穿戴设备(例如,手表、手环、智能头盔等),虚拟现实(virtual reality,vr)设备、增强现实(augmented reality,ar)设备、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda),工业控制(industrial control)中的无线电子设备、无人驾驶(self driving)中的无线电子设备、远程手术(remote medical surgery)中的无线电子设备、智能电网(smart grid)中的无线电子设备、运输安全(transportation safety)中的无线电子设备、智慧城市(smart city)中的无线电子设备、智慧家庭(smart home)中的无线电子设备等。
71.(4)本技术实施例涉及的服务器,也可以称为大数据平台、云端、云服务器、或服务器集群等等,本技术对此名称不作限定。但是这并不构成对其的限定,其他可以用于大数据计算的服务器也是可以的。
72.(5)本技术实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
73.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
74.本技术实施例涉及的至少一个,包括一个或者多个;其中,多个是指大于或者等于两个。另外,需要理解的是,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
75.图1示出了本技术实施例提供的性能优化方法的一种示例性的场景示意图。如图1所示,该场景中可以包括服务器200,以及一个或多个终端(图中以终端301和终端302为例)的通信系统的示意图。服务器200与终端之间建立连接后,服务器200可以为终端提供网络服务。其中关于服务器、终端的介绍请参考前文。例如,终端可以安装有一个或多个app。在
app运行过程中,终端与服务器200之间存在信息交互。该信息可以是服务器200为终端推荐的与app相关的配置参数,和/或,是终端向服务器200上报与app运行相关的状态信息。
76.以游戏应用为例,终端安装有游戏应用。响应于用户的启动操作(如单击或触摸终端显示界面显示的游戏应用的图标),终端启动该游戏应用。当游戏应用在终端上运行时,终端可以采集游戏运行数据。该游戏运行数据例如包括,高负载场景出入标记、场景类别、实例数据、首帧的渲染时长、高负载场景时间段内的平均帧率、抖动率、卡顿数、低帧率比率、耗电量、设备壳温、或丢帧数等中的一项或多项。
77.终端采集游戏运行数据之后,可以将游戏运行数据发送给对应的服务器200,如与终端建立连接的服务器200。该服务器200可以为游戏应用代理商提供的服务器,如腾讯游戏对应的服务器,当然,也可以是其它服务器,如手机供应商对应的服务器,本技术对此不作限定。服务器200可以根据游戏运行数据,确定配置参数,该配置参数为服务器200推荐的软件资源、或者硬件资源、或者软件资源和硬件资源。
78.例如,服务器200中维护有大量的游戏运行数据。这些大量的游戏运行数据是不同游戏应用在不同型号的终端中运行时产生的。服务器200可以以游戏应用的标识为索引对不同游戏应用的游戏运行数据进行存储。为了便于理解,表1示出了服务器200中的存在游戏运行数据的一种示例。表1中以荒野行动和王者荣耀为例,示出了同一个游戏应用在终端运行时不同场景所产生的游戏运行数据不同,不同游戏应用在相同型号的终端上运行时所产生的游戏运行数据不同,同一个游戏应用在不同型号的终端上运行时所产生的游戏运行数据不同。
79.表1
[0080][0081]
又例如,服务器200可以根据这些游戏运行数据生成训练样本,对不同游戏应用、不同型号、不同场景对应的参数推荐模型进行训练。服务器200中维护有不同游戏应用、不同型号、不同场景对应的参数推荐模型。参数推荐模型用于针对游戏应用在终端运行过程中的一个或多个场景,为该游戏应用推荐可使用的硬件资源,或者推荐可使用的软件资源,或者推荐可使用的硬件资源和软件资源。例如,服务器200以游戏应用的标识为索引对这些参数推荐模型进行存储。为了便于理解,表2示出了服务器200维护的参数推荐模型的一种示例。表2中以荒野行动和王者荣耀为例,示出了不同游戏应用、不同型号、不同场景对应的参数推荐模型。
[0082]
表2
[0083][0084][0085]
总之,服务器200可以根据终端上报的游戏运行数据,为终端推荐用于配置游戏应用可使用的硬件资源和/或软件资源。
[0086]
需要说明的是,服务器200和终端之间可以通过通信网络互联,该通信网络可以是局域网,也可以是通过中继(relay)设备转接的广域网。当该通信网络为局域网时,示例性的,该通信网络可以是wifi热点网络、wifi p2p网络、蓝牙网络、zigbee网络或近场通信(near field communication,nfc)网络等近距离通信网络。当该通信网络为广域网时,示例性的,该通信网络可以是第三代移动通信技术(the 3rd-generation wireless telephone technology,3g)网络、第四代移动通信技术(the 4th generation mobile communication technology,4g)网络、第五代移动通信技术(the 5th-generation mobile communication technology,5g)网络、未来演进的公共陆地移动网络(public land mobile network,plmn)或因特网等。在图1所示的场景中,不同电子设备之间可以通过通信网络交互数据,例如,终端向服务器200发送场景参数和性能参数。服务器200向终端发送配置参数等。
[0087]
下面分别针对服务器200以及终端进行示例性说明:
[0088]
一、服务器200:
[0089]
图2a示出的是与本技术各实施例相关的服务器200的部分结构的框图。该服务器200例如是单服务器、服务器群集或云服务器等,用于根据终端上报的游戏运行数据,为终端推荐配置游戏应用可使用的硬件资源和/或软件资源。如图2a所示,该服务器200可以包括:处理器201、存储器202以及收发器203。其中一个或多个计算机程序被存储在上述存储器202中并被配置为被该一个或多个处理器201执行。
[0090]
处理器201,可以是中央处理单元(central processing unit,cpu),或者为数字处理单元等。处理器201可以是服务器200的控制中心,利用各种接口和线路连接整个服务器200的各个部分,通过运行或执行存储在存储器202内的计算机程序,以及调用存储在存储器202内的与游戏应用相关的历史游戏运行数据,执行与该游戏应用相关的各种功能,例如,根据历史游戏运行参数确定配置参数,对确定出的配置参数进行验证等等处理。
[0091]
收发器203,可以用于接收终端采集与游戏应用相关的历史游戏运行数据,以及将处理器201处理后的配置参数发送给终端等。
[0092]
示例性的,该服务器200还可以包括数据库204。该数据库204,可以用于存储大量的app压缩文件,如表1所示的各游戏应用相关的游戏运行数据,如表2所示的各游戏应用相关的参数推荐模型等。
[0093]
本技术实施例中不限定上述处理器201以及存储器202、处理器201以及数据库204等之间的具体连接介质。本技术实施例在图2a中以处理器210、存储器202、收发器203以及数据库204之间通过总线205连接,总线在图2a中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引此以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2a中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0094]
其中,存储器202可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器202也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd)、或者存储器202是能够用于携带或存储具有指令或数据结构形式的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器202可以是上述存储器的组合。
[0095]
二、终端:
[0096]
图2b示出了终端的一种结构的示意图。该终端例如是图1所示架构中的终端。终端例如手机、平板电脑等。如图2b所示,终端可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。
[0097]
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是终端100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
[0098]
usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为终端充电,也可以用于终端与外围设备之间传输数据。充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
[0099]
终端的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。终端中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线
的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
[0100]
移动通信模块150可以提供应用在终端上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
[0101]
无线通信模块160可以提供应用在终端上的包括无线局域网(wireless local area networks,wlan),如无线保真(wireless fidelity,wi-fi)网络,蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
[0102]
在一些实施例中,终端的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas。
[0103]
显示屏194用于显示应用的显示界面,例如游戏应用的游戏界面等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,终端可以包括1个或n个显示屏194,n为大于1的正整数。
[0104]
终端可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
[0105]
isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处
理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
[0106]
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,终端可以包括1个或n个摄像头193,n为大于1的正整数。
[0107]
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
[0108]
视频编解码器用于对数字视频压缩或解压缩。终端可以支持一种或多种视频编解码器。这样,终端可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
[0109]
npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现终端的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
[0110]
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,以及至少一个应用程序(例如爱奇艺应用,微信应用等)的软件代码等。存储数据区可存储终端使用过程中所产生的数据(例如拍摄的图像、录制的视频等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
[0111]
外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将图片,视频等文件保存在外部存储卡中。
[0112]
终端可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
[0113]
其中,传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
[0114]
压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。陀螺仪传感器180b可以用于确定终端的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定终端围绕三个轴(即,x,y和z轴)的角速度。
[0115]
陀螺仪传感器180b可以用于拍摄防抖。气压传感器180c用于测量气压。在一些实施例中,终端通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。磁传感器180d包括霍尔传感器。终端可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,
当终端是翻盖机时,终端可以根据磁传感器180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。加速度传感器180e可检测终端在各个方向上(一般为三轴)加速度的大小。当终端静止时可检测出重力的大小及方向。还可以用于识别终端姿态,应用于横竖屏切换,计步器等应用。
[0116]
距离传感器180f,用于测量距离。终端可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端可以利用距离传感器180f测距以实现快速对焦。接近光传感器180g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端通过发光二极管向外发射红外光。终端使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端附近有物体。当检测到不充分的反射光时,终端可以确定终端附近没有物体。终端可以利用接近光传感器180g检测用户手持终端贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
[0117]
环境光传感器180l用于感知环境光亮度。终端可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测终端是否在口袋里,以防误触。指纹传感器180h用于采集指纹。终端可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
[0118]
温度传感器180j用于检测温度。在一些实施例中,终端利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,终端执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端对电池142加热,以避免低温导致终端异常关机。在其他一些实施例中,当温度低于又一阈值时,终端对电池142的输出电压执行升压,以避免低温导致的异常关机。
[0119]
触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于终端的表面,与显示屏194所处的位置不同。
[0120]
骨传导传感器180m可以获取振动信号。在一些实施例中,骨传导传感器180m可以获取人体声部振动骨块的振动信号。骨传导传感器180m也可以接触人体脉搏,接收血压跳动信号。
[0121]
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端可以接收按键输入,产生与终端的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示信息,未接来电,通知等。sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现与终端的接触和分离。
[0122]
可以理解的是,图2b所示的部件并不构成对终端的具体限定,终端还可以包括比
图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。此外,图2b中的部件之间的组合/连接关系也是可以调整修改的。
[0123]
本技术实施例以分层架构的安卓(android)系统为例,示例性说明终端的软件结构。
[0124]
图2c是本发明实施例的终端的软件结构框图。
[0125]
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
[0126]
应用程序层可以包括一系列应用程序包。
[0127]
如图2c所示,应用程序包可以包括游戏,相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频等应用程序。
[0128]
应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
[0129]
如图2c所示,应用程序框架层可以包括采集安卓应用包(android application package,apk),验证模块,系统性能模块,窗口管理器,内容提供器,视图系统,资源管理器,通知管理器等。
[0130]
采集apk,用于采集游戏运行过程中的游戏运行数据,将采集到的游戏运行数据上报到云端服务器,以及从云端服务器下载该游戏对应的配置参数。该采集apk作为一个功能实现,可以位于应用程序框架层中,也可以集成在游戏应用程序中,本技术实施例对此不作限定。
[0131]
验证模块,用于在游戏运行过程中对从云端获取的配置参数进行验证。该验证模块作为一个功能实现,可以位于应用程序框架层中,也可以集成在游戏应用程序或其它应用程序中,本技术实施例对此不作限定。
[0132]
系统性能模块,用于采集游戏运行过程中的性能参数。
[0133]
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
[0134]
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
[0135]
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
[0136]
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
[0137]
android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
[0138]
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
[0139]
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
[0140]
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。
[0141]
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
[0142]
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
[0143]
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
[0144]
2d图形引擎是2d绘图的绘图引擎。
[0145]
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
[0146]
本技术实施例提供一种终端的性能优化方法,在该方法中,服务器接收来自多个终端的第一运行数据,第一运行数据包括该多个终端在运行第一应用的第一场景时的运行数据,其中,该多个终端的型号为第一型号;服务器根据第一型号、第一应用的标识信息及第一运行数据,确定第一配置参数,该第一配置参数用于第一型号的终端在运行第一应用的第一场景时对所述终端进行参数配置;服务器向第一终端发送第一配置参数,相应的,第一终端接收来自服务器的第一配置参数,其中,该第一终端的型号为第一型号,第一配置参数包括第一应用的第一场景对应的配置参数;以及,第一终端确定运行第一应用时的第一场景,并根据第一配置参数运行第一应用的第一场景。通过本技术实施例,服务器可以针对同款型号、同款应用、以及同款场景推荐用于进行性能优化的配置参数,终端可以根据服务器推荐的配置参数对第一应用的第一场景进行性能优化,提升用户体验。
[0147]
接下来,首先介绍服务器确定第一配置参数的过程。
[0148]
图3示出了本技术实施例提供的配置参数确定方法的一种流程示意图。如图3所示,该方法的流程如下所示。
[0149]
s31:终端采集运行第一游戏应用的第一场景时的第二游戏运行数据。
[0150]
第一场景为高负载场景。本技术实施例中的第一场景可以指一个或多个场景,即该第一场景可以是第一游戏应用运行过程中的一个高负载场景,也可以是第一游戏应用运行过程中的多个高负载场景。为了便于理解,在不作特殊说明的情况下,下文以第一场景为一个场景为例进行描述。
[0151]
其中,高负载场景,又可以称为高性能场景、高负荷场景等等,本技术对其名称不作限定。高负载场景可以指第一游戏应用运行过程中对软件资源、硬件资源需求超过设定阈值的场景,例如通过游戏应用的游戏服务软件开发包(software development kit,sdk)标记第一游戏应用运行过程中的高负载场景。在高负载场景中,游戏界面容易出现卡顿、画质不清,设备壳温升高等影响用户游戏体验的问题。为了方便理解,表3示出了游戏应用运行过程中的高负载场景的一种示例。以荒野行动为例表3示出了,当游戏界面出现2个或2个以上的用户对战时,该场景为高负载场景1;当游戏界面出现4个用户乘坐车辆快速移动时,该场景为高负载场景2;当游戏界面出现多个用户和超过20个物资时,该场景为高负载场景
3。正常场景,是指第一游戏应用运行过程中除了高负载场景之外的场景,即第一游戏应用运行过程中对软件资源、硬件资源的需求未超过设定阈值的场景。
[0152]
表3
[0153][0154][0155]
第二游戏运行数据可以是终端根据第二配置参数运行第一游戏应用的第一场景时的运行数据。相应的,第一场景为终端基于第二配置参数运行第一游戏应用过程中的一个或多个高负载场景。例如,终端安装有第一游戏应用,响应于用户的启动操作,终端根据第二配置参数运行该第一游戏应用。第一游戏应用在运行过程中,会出现一个或多个高负载场景(即第一场景),并采集该一个或多个高负载场景下的游戏运行数据。
[0156]
其中,该第二配置参数可以为当前终端本地存储的配置参数,例如,该第二配置参数可以是终端出厂时默认的配置参数,或者是上一次服务器推荐的配置参数,或者是终端系统版本更新后的配置参数,或者是第一游戏应用版本更新后的配置参数等,本技术实施例对此不作限定。
[0157]
第二游戏运行数据可以包括第二场景参数和第二性能参数。例如,终端可以采集一个或多个高负载场景下的场景参数和性能参数。例如,终端可以通过第一游戏应用集成的游戏服务sdk采集高负载场景下的场景参数。例如,终端可以通过与硬件相关的控制软件采集高负载场景下的性能参数。
[0158]
其中,场景参数,可以指第一游戏应用运行过程中与当前高负载场景相关的游戏数据。场景参数可以包括但不限定于以下参数中的一项或多项:高负载场景出入标识、场景类型或实例数据等。
[0159]
高负载场景出入标识,指进入和退出高负载场景的标识,如若当前场景由正常场景切换为高负载场景,则终端可以确定当前时间为高负载场景的进入时间,并对进入时间进行标识(如打上时间戳);若当前场景由高负载场景切换为正常场景,则确定当前时间为高负载场景的退出时间,并对退出时间进行标识。
[0160]
场景类型,指当前高负载场景对应的场景类型。以荒野行动为例,场景类型可以包括对战场景、跳伞场景、飙车场景、以及跑毒场景等。场景的标识信息,用于标识第一游戏应用运行过程中的各个场景。可以理解的是,不同游戏应用的场景类型可以相同,也可以不同,对于一个游戏应用而言,场景类型可以是预先定义的,或者是由该游戏应用提供商预先设定的等,本技术实施例对此不作限定。高负载场景也可以是预先定义的,或者是由该游戏应用提供商预先设定的等,本技术实施例对此不作限定。
[0161]
实例数据,指当前高负载场景中同屏用户数量、物品数量、以及建筑物大小等。
[0162]
以荒野行动为例,荒野行动在终端上运行。游戏界面由跳伞场景切换为多人对战场景,终端确定游戏进入高负载场景,标记该高负载场景的进入时间和退出时间,确定该高负载场景为场景类型1。进一步,终端统计高负载场景对应的时间段内同屏的最多(或平均)用户数量,最多(或平均)的物品数量,物品大小等数据。
[0163]
性能参数,可以指第一游戏应用运行过程中与当前高负载场景相关的系统数据。该性能参数可以包括但不限定于以下参数中的一项或多项:首帧的渲染时长、平均帧率、抖动率、低帧率比率、耗电量、设备壳温或丢帧数等。
[0164]
首帧的渲染时长,指第一游戏应用启动时首帧的渲染时长,如首帧的渲染时长可以理解为从终端接收到第一游戏应用的启动操作到终端显示第一游戏应用的登录界面的时长。
[0165]
平均帧率,指高负载场景对应的时间段内的平均帧率,其中,帧率是指以帧为单位的位图图像连续出现在显示界面上的频率(或速率)。
[0166]
抖动率,用于衡量高负载场景对应的时间段内游戏画面的稳定性。
[0167]
卡顿数,指高负载场景对应的时间段内的第一游戏应用的卡顿数。
[0168]
低帧率比率,指高负载场景对应的时间段内低帧率的数量占总帧率数量的比例,其中,低帧率为低于设定阈值的帧率。
[0169]
耗电量,指高负载场景对应的时间段内终端运行第一游戏应用的耗电量。
[0170]
设备壳温,指高负载场景对应的时间段内终端的最高外壳温度。
[0171]
丢帧数,指高负载场景对应的时间段内第一游戏应用在运行过程中的丢帧数。
[0172]
以荒野行动为例,荒野行动在终端上运行。游戏界面由跳伞场景切换为对战场景,终端确定游戏进入高负载场景。当游戏界面由该对战场景切换为正常场景时,终端确定游戏退出高负载场景,并统计该高负载场景对应的时间段内的平均帧率、抖动率、卡顿数、低帧率比率、耗电量、设备壳温以及丢帧数等。进一步,终端还可以采集荒野行动启动时首帧的渲染时长。
[0173]
表4以荒野行动为例示出了场景参数和性能参数的一种示例。如表4所示,场景1对应的场景参数为游戏界面同屏对象高于50小于100,性能参数为耗电量小于1500毫安;场景2对应的性能参数为多个应用同时运行;场景3对应的性能参数为设备最高温度为48摄氏度;场景4对应的性能参数为平均帧率40帧,低于第一游戏应用推荐的平均帧率(60帧),以及低帧率比率大于5%。
[0174]
表4
[0175][0176]
s32:终端向服务器发送第二游戏运行数据。相应的,服务器接收第二游戏运行数据。
[0177]
第二游戏运行数据中包括第二场景参数和第二性能参数。可以理解的是,由于第一游戏应用运行过程中可能出现一个或多个高负载场景,所以,该第二游戏运行数据中可以包括一组场景参数和性能参数,也可以包括多组场景参数和性能参数。例如,终端可以实时向服务器上报高负载场景下的场景参数和性能参数,即终端每采集一次场景参数和性能参数就上报给服务器,第二游戏运行数据包括一组场景参数和性能参数。或者,终端可以在第一游戏应用运行结束后向服务器上报高负载场景下的场景参数和性能参数,即,终端将第一游戏应用运行时段内的所有高负载场景下的场景参数和性能参数上报给服务器,在此情况下,第二游戏运行数据包括一组或多组场景参数和性能参数。
[0178]
在一种可能的实施方式中,第二游戏运行数据还可以包括终端的型号信息。不同型号的终端(如同一品牌下不同型号的终端,或不同品牌下不同型号的终端)的出厂硬件资源不同,那么同一款游戏应用在不同型号的终端上运行时的表现就会不同。例如,同一款游戏应用在低配终端上表现为高负载场景,而在高配终端上表现为正常场景。
[0179]
在另一种可能的实施方式中,第二游戏运行数据还可以包括第一游戏应用的标识信息,用以区分与其它游戏应用。例如,服务器可以维护多个游戏应用在终端上的游戏运行数据,该第一游戏应用的标识信息可以用于在该多个游戏应用中区别与其它游戏应用。
[0180]
在另一种可能的实施方式中,第二游戏运行数据还可以包括终端的标识信息。在本技术实施例中,服务器在公测阶段可以接收来自多个第一型号的终端的第二游戏运行数据,该第二游戏运行数据中可以包括游戏运行数据、终端的型号信息、第一游戏应用的标识信息和终端的标识信息。即,服务器在公测阶段收集第一游戏应用在多个同型号的终端中的游戏运行数据。该终端的标识信息可以用于服务器对多个同型号的终端进行识别,以便可以更准确的为每个终端获得更加准确的配置参数。示例性的,该终端的标识信息可以是网际互连协议(internet protocol,ip)地址、或媒体存取控制(media access control,mac)地址等,或者其它区分于其它终端的标识信息。
[0181]
通过步骤s31和步骤s32,服务器可以收集多个终端运行第一游戏应用的第一场景时的第二游戏运行数据。该多个终端的型号相同,皆为第一型号。为了便于理解本技术实施例,下文中将服务器收集的来自多个的终端的第二游戏运行数据,称为第一游戏运行数据。即,该第一游戏运行数据可以理解为多个第二游戏运行数据。
[0182]
示例性的,服务器还可以接收第一游戏应用在不同型号的终端中的游戏运行数据。示例性的,服务器可以对这些游戏运行数据进行维护,如以终端的型号信息为索引对第一游戏应用在多个终端中的游戏运行数据进行存储。为了便于理解,表5示出了服务器维护的游戏运行数据的一种示例。以荒野行动为例表5示出了,同款游戏应用在不同型号的多个终端中的游戏运行数据。
[0183]
表5
[0184][0185]
s33:服务器根据第一游戏运行数据对第一参数推荐模型进行训练。
[0186]
第一游戏运行数据包括步骤s32中的第二游戏运行数据。该第一游戏运行数据可以是公测阶段获取的游戏运行数据,也可以是现网阶段获取的游戏运行数据,还可以是公测阶段和现网阶段获取的游戏运行数据,本技术实施例对此并不限定。
[0187]
服务器可以根据第一游戏运行数据对第一参数推荐模型进行训练。例如,服务器可以根据第一游戏运行数据构建训练样本,并基于训练样本对第一参数推荐模型进行训练,直至模型符合预期为止,并保存第一参数推荐模型,如表2所示。其中,训练样本数据可以包括终端的型号信息,第一游戏应用的标识信息,第一场景的标识信息,以及第一游戏运行数据(场景参数和性能参数)。
[0188]
训练完成之后,该第一参数推荐模型可用于针对第一游戏应用的第一场景为第一型号的终端推荐配置参数。其中,第一参数推荐模型的输入可以为终端的型号信息以及游戏应用的标识信息,输出可以包括但不限于如下参数中的一项或多项:第一场景的标识信息,以及与第一场景的标识信息对应的芯片(如cpu、和/或gpu)运行频点、温度、内存大小、网速或者同时运行的其它应用的数据信息(如数量、网速等)等。
[0189]
示例性的,服务器可以周期性(如每周、或每月等)的根据获取到的游戏运行数据更新第一参数推荐模型;或者,也可以非周期性的根据获取到的游戏运行数据更新第一参数推荐模型进行。例如,当获取到游戏运行数据的大小达到设定阈值(如1000份第二游戏运行数据)时,服务器可以根据获取到的游戏运行数据对第一参数推荐模型进行更新。再例如,当发送第二游戏运行数据的终端的数量与当前安装有第一游戏应用的第一型号的终端的数量之间的比值达到设定比例(如10%,或者15%等)时,服务器可以根据获取到的游戏运行数据对第一参数推荐模型进行更新。
[0190]
s34:服务器根据第一参数模型获取第一配置参数。
[0191]
第一参数推荐模型训练完成后,服务器可以将终端的型号信息以及第一游戏应用的标识信息输入到第一参数推荐模型中,得到第一配置参数。其中,该第一配置参数可用于针对第一游戏应用在第一型号的终端运行时的第一场景、配置第一游戏应用能够使用的硬件资源,或者能够使用的软件资源,或者能够使用的硬件资源和软件资源。
[0192]
第一配置参数可以包括第一场景的标识信息,以及与第一场景的标识信息对应的如下参数中的一项或多项:cpu运行频点、gpu运行频点、cpu大小核的数量、gpu大小、触发温控策略的最高温度或网速优先级等。
[0193]
需要说明的是,本技术实施例中的第一场景可以指一个或多个场景。相应的,当第一场景为一个场景时,第一配置参数可以用于配置该一个场景中第一游戏应用能够使用的
硬件资源和/或软件资源;当第一场景为多个场景时,第一配置参数可以用于配置该多个场景中第一游戏应用能够使用的硬件资源和/或软件资源。
[0194]
在步骤s34中,服务器可以在第一参数推荐模型训练完成后,根据第一参数推荐模型获取第一配置参数。在另一种可能的实现方式中,服务器可以将训练好的第一参数推荐模型存储在本地,接收来自终端的第一请求消息,第一请求消息中包括终端的型号信息以及第一游戏应用的标识信息。例如,终端可以周期性(如每周)的向服务器发送第一请求消息,或者也可以非周期性的向服务器发送第一请求消息,如在第一游戏应用版本更新后发送第一请求消息。进一步,服务器响应于第一请求消息,可以根据第一参数推荐模型获取第一配置参数,并向终端设备发送第一响应消息,第一响应消息中包括第一配置参数。
[0195]
在确定出第一配置参数后,服务器可以将该第一配置参数更新为第一游戏应用在第一型号的终端上的推荐配置参数,也可以对第一配置参数进行验证,即执行步骤s35的内容,这样可以确定该第一配置参数是否能够优化第一游戏应用在第一型号的终端上的运行性能,提高可靠性。
[0196]
s35:服务器对第一配置参数进行验证。如果第一配置参数的验证通过,则流程结束;如果第一配置参数的验证未通过,则服务器执行步骤s33的内容。
[0197]
服务器确定出第一配置参数后,可以对第一配置参数进行验证,用以确定第一配置参数是否对第一游戏应用在第一型号的终端运行中的第一场景进行有效优化。例如,服务器可以通过云真机对第一配置参数进行一次或多次验证。具体的,云真机可以模拟第一型号的终端,根据第一配置参数运行第一游戏应用的第一场景,并采集云真机根据第一配置参数运行第一游戏应用的第一场景时的第三性能参数,然后根据第三性能参数和第四性能参数对第一配置参数进行验证。例如,服务器可以通过对比第三性能参数和第四性能参数,确定第一配置参数是否能对第一游戏应用在第一型号的终端运行中的第一场景进行有效优化。
[0198]
其中,该第四性能参数为服务器存储的。例如,该第四性能参数为预先定义的、或者第三配置参数对应的性能参数,如云真机模拟第一型号的终端,根据第三配置参数运行第一游戏应用的第一场景,获取云真机根据第三配置参数运行第一游戏应用的第一场景时的性能参数(即第三性能参数),并存储。该第三配置参数可以是第一型号的终端出厂时默认的配置参数,或者是上一次服务器更新的配置参数,或者是第一型号的终端系统版本更新后的配置参数,或者是第一游戏应用版本更新后的配置参数等,本技术实施例对此不作限定。
[0199]
可以理解的是,第三配置参数与步骤s31中的第二配置参数可以相同(如皆为第一型号的终端出厂时默认的配置参数),也可以不同(如第二配置参数为默认的配置参数,第三配置参数为服务器更新的配置参数)。
[0200]
服务器可以结合验证指标,通过第三性能参数和第四性能参数对第一配置参数进行验证。该验证指标可以是预先定义的,也可以是第一游戏应用代理商提供的,还可以是终端供应商提供的等,本技术对此不作限定。例如,服务器可以根据验证指标,确定第三性能参数中优于第四性能参数的一个或多个参数,再根据这的一个或多个参数确定验证是否通过。例如,服务器可以采用评分制,根据第四性能参数对第三性能参数中的每个参数进行评分,得到第三性能参数的评分,然后根据第三性能参数的评分与总分数之间的比值是否达
到设定阈值确定验证是否通过。
[0201]
为了便于理解,表6示出了验证指标的一种示例。以验证指标总分数为100分为例表6示出了,当第三性能参数中的首帧的渲染时长相较于第四性能参数中的首帧的渲染时长缩短或持平时,第三性能参数得15分,否则,第三性能参数得0分;当第三性能参数中的平均帧率相较于第四性能参数中的平均帧率提高大于或等于10%时,第三性能参数得10分,若提高大于0但小于10%,则第三性能参数得7分,若未提高,则第三性能参数得0分;当第三性能参数中的抖动率相较于第四性能参数中的抖动率降低大于或等于10%时,第三性能参数得10分,若降低大于0但小于10%,则第三性能参数得7分,若未降低,则第三性能参数得0分;当第三性能参数中的卡顿数相较于第四性能参数中的卡顿数降低大于或等于10%时,第三性能参数得15分,若降低大于0但小于10%,则第三性能参数得12分,若未降低,则第三性能参数得0分;当第三性能参数中的低帧率比率相较于第四性能参数中的低帧率比率降低大于或等于10%时,第三性能参数得10分,若降低大于0但小于10%,则第三性能参数得7分,若未降低,则第三性能参数得0分;当第三性能参数中的耗电量相较于第四性能参数中的耗电量降低大于或等于5%时,第三性能参数得15分,若降低大于0但小于5%,则第三性能参数得12分,若未降低,则第三性能参数得0分;当第三性能参数中的设备壳温相较于第四性能参数中的设备壳温降低或持平时,第三性能参数得15分,否则,第三性能参数得0分;当第三性能参数中的丢帧率相较于第四性能参数中的丢帧率降低大于或等于10%时,第三性能参数得10分,若降低大于0但小于10%,则第三性能参数得7分,若未降低,则第三性能参数得0分。通过表6,服务器可以得到第三性能参数的得分值,当第三性能参数的得分值大于或等于设定阈值(如90分、或80分等),则服务器可以确定该第三性能参数验证通过;否则,服务器确定该第三性能参数验证未通过。可以理解的是,表6中各项数据作为一种示例,用于方便理解本技术实施例,但本技术实施例并不限定于此。
[0202]
表6
[0203][0204]
在步骤s35中,服务器对第一配置参数进行验证的次数可以是一次,也可以是多次,本技术实施例对此不作限定。例如,在验证次数为一次的情况下,若该一次验证的未通过,则服务器确定对第一配置参数的验证未通过,并对第一参数推荐模型进行重训练,即执行步骤s33的内容;反之,则服务器确定第一配置参数的验证通过,流程结束。再例如,在验证次数为多次的情况下,若多次验证中的设定验证次数(如总验证次数的10%等)皆未通过,则服务器确定对第一配置参数的验证未通过,并执行步骤s33的内容;反之,服务器确定第一配置参数的验证通过,流程结束。
[0205]
如果第一配置参数的验证未通过,则服务器可以对第一参数配置模型进行重训练,如调整模型中的参数根据第一游戏运行数据重新训练,即执行步骤s33和步骤s34,直至验证通过或服务器将验证未通过的消息发送给管理人员进行人工定位。
[0206]
如果第一配置参数的验证通过,则服务器可以将第一配置参数更新为第一游戏应用的第一场景在第一型号的终端上的推荐参数。根据图3所示的流程,服务器可以获取不同游戏应用、不同终端、不同场景下的推荐参数并维护。为了便于理解,表7示出了服务器维护的配置参数的一种示例。以荒野行动和王者荣耀为例表7示出了,不同游戏应用、不同型号、不同场景对应的配置参数。
[0207]
表7
[0208][0209]
在图3所示的流程中,第一配置参数是服务器根据第一游戏应用在第一型号的多个终端上运行时产生的大量游戏运行数据得到的优化策略。不同型号的终端的硬件资源不一样,服务器通过云真机模拟第一型号的终端,可以模拟出第一游戏应用在第一型号的终端中的运行环境。在云真机中基于第一配置参数运行第一游戏应用,可以采集到第一游戏应用在第一型号的终端中运行时的第一场景的性能参数,进而基于该性能参数对第一配置参数进行验证,当验证通过后,才将第一配置参数发送给第一型号的终端,这样就可以确保第一配置参数能够提高第一游戏应用的第一场景在第一型号的终端运行时的性能,能够提高用户体验和提高第一配置参数的可靠性。
[0210]
至此,服务器确定第一配置参数的流程结束。
[0211]
前述介绍了服务器确定第一配置参数的过程,下面介绍终端根据第一配置参数进行性能优化的过程。
[0212]
图4示出了本技术实施例提供的性能优化方法的一种流程示意图。如图4所示,该方法的流程如下所示。
[0213]
s41:服务器向终端发送第一配置参数。相应的,终端接收来自服务器的第一配置参数。
[0214]
第一配置参数是服务器推荐的、用以优化第一游戏应用在终端运行过程中的性能。具体的,该第一配置参数可以是服务器根据多个终端运行第一游戏应用的第一场景时的游戏运行数据确定的、并验证通过的参数。该第一配置参数可用于针对第一游戏应用在第一型号的终端运行时的第一场景、配置第一游戏应用能够使用的硬件资源,或者能够使用的软件资源,或者能够使用的硬件资源和软件资源。该多个终端的型号皆相同,如皆为第一型号。其中,有关第一配置参数的具体描述可参考前述步骤s34中与第一配置参数相关的描述,在此不再赘述。
[0215]
在步骤s41中,服务器可以将更新的配置参数,即第一配置参数,主动推送给终端,如当新的配置参数验证通过后,服务器可以对本地存储的配置参数进行更新,以及将更新的配置参数推送给终端。例如,在公测阶段,服务器可以根据终端的标识信息,将更新后的配置参数主动推送给终端。
[0216]
或者,终端可以向服务器发送第一请求消息。相应的,服务器接收到第一请求消息后,可以向终端发送第一响应消息。其中,第一请求消息中可以包括终端的型号信息和第一游戏应用的标识信息等,该第一响应消息中包括第一配置参数。例如,终端可以在第一游戏
应用启动时向服务器发送第一请求消息,如用户单击终端显示界面中的第一游戏应用的图标,作为响应,终端启动第一游戏应用,并向服务器发送第一请求消息;服务器接收到第一请求消息后,可以向终端发送第一响应消息,或者根据第一参数推荐模型确定第一配置参数,并向终端发送第一响应消息。再例如,终端可以周期性地(如每天凌晨,或每周日)向服务器发送第一请求消息;相应的,服务器接收到第一请求消息后,可以向终端发送第一响应消息,或者根据第一参数推荐模型确定第一配置参数,并向终端发送第一响应消息。
[0217]
上述第一请求消息可以用于请求更新的配置参数,或者可以用于请求配置参数。
[0218]
例如,在该第一请求消息用于请求更新的配置参数时,服务器接收到该第一请求消息后,可以根据终端的型号信息、第一游戏应用的标识信息,确定该第一游戏应用的配置参数是否有更新。在第一游戏应用的配置参数有更新的情况下,服务器向终端发送的第一响应消息中包括更新的配置参数。在第一游戏应用的配置参数没有更新(如更新的配置参数已经发送给终端)的情况下,服务器向终端发送的第一响应消息可以为否认应答(negative acknowledgment,nack)消息,进一步,终端可以根据第二配置参数运行第一游戏应用。
[0219]
又例如,在该第一请求消息用于请求配置参数时,服务器接收到该第一请求消息后,可以根据终端的型号信息、第一游戏应用的标识信息,确定该第一游戏应用的配置参数为第一配置参数;或者,将终端的型号信息、第一游戏应用的标识信息输入到第一参数推荐模型中,得到第一配置参数。服务器向终端发送的第一响应消息,该第一响应消息中包括第一配置参数。在此情况下,第一配置参数与第二配置参数可以相同,也可以不同。
[0220]
s42:在第一游戏应用运行过程中,终端根据第一配置参数运行第一游戏应用的第一场景。
[0221]
终端接收来自服务器的第一配置参数后,在第一游戏应用运行过程中,终端可以根据第一配置参数运行第一游戏应用的第一场景。例如,终端可以采用xml格式将第一配置参数存储在系统目录中,当第一游戏应用运行时,可以调用该第一配置参数。第一配置参数包括场景的标识信息等。该第一配置参数是针对第一场景获取的,第一场景可以是一个或多个场景,相应的,第一配置参数中可以包括一个场景对应的配置参数,也可以包括多个场景对应的配置参数。该场景的标识信息可以用于区分配置参数用于哪个场景。具体的,终端可以确定在第一游戏应用运行过程中的第一场景,并根据第一配置参数运行该第一场景。例如,终端在第一游戏应用运行过程中可以调用该第一游戏应用集成的游戏服务sdk;游戏服务sdk判断当前的场景是否为第一场景;如果确定当前的场景为第一场景时,终端根据第一场景的标识信息从系统目录中获取该第一场景对应的配置参数,并基于该第一场景对应的配置参数运行该第一场景。
[0222]
在第一游戏应用运行过程中,终端根据第一配置参数进行参数配置。为了便于理解,表8示出了不同场景下对应的配置参数。如表8所示,若当前场景为场景1,则终端可以根据温控策略对gpu限频,对cpu不限频,并将cpu大小核资源优先配置给第一游戏应用;若当前场景为场景2,则终端可以将最高网速优先权设置给第一游戏应用;若当前场景为场景3,则终端可以将温控策略的最高温度提高2摄氏度,即50摄氏度;若当前场景为场景4时,则终端可以为第一游戏应用增加4m的gpu缓存资源,以及cpu大小核各4核。
[0223]
表8
[0224][0225]
以第一配置参数用于配置两个场景为例,在第一个场景中,服务器推荐的配置参数为:平均帧率为60帧,设备壳温高于50摄氏度触发限频策略,根据温控策略限制gpu的运行频率,不限制cpu的运行频率,网速优先级最高,cpu大小核各4核,gpu高速缓存为4兆字节(mbyte,m)。在第二个场景中,服务器推荐的配置参数为:平均帧率为50帧,设备壳温高于45摄氏度触发限频策略,不限制gpu的运行频率,根据温控策略限制cpu的运行频率。在此情况下,服务器给终端推荐的第一配置参数的格式可以如下:
[0226][0227][0228]
s43:在根据第一配置参数运行第一游戏应用的第一场景时,终端对第一配置参数进行验证。如果第一配置参数的验证通过,则终端根据第一配置参数继续运行第一游戏应用的第一场景,流程结束;如果第一配置参数的验证未通过,则终端执行s44的内容。
[0229]
在根据第一配置参数运行第一游戏应用的第一场景的过程中,终端可以对第一配置参数进行验证,用以确定第一配置参数是否对本终端运行第一游戏应用的第一场景进行
有效的优化。例如,终端可以采集根据第一配置参数运行第一游戏应用的第一场景时的第一性能参数,然后根据第一性能参数和第二性能参数对第一配置参数进行验证。例如,终端可以通过对比第二性能参数和第一性能参数,确定第一配置参数是否能对第一游戏应用在本终端运行中的第一场景进行性能优化。该第二性能参数可以为终端本地存储的。例如,该第二性能参数为预先定义的、或者为第二配置参数对应的性能参数,如终端根据第二配置参数运行第一游戏应用,获取运行过程中的第一场景下的性能参数(即第二性能参数),并存储。
[0230]
终端可以结合验证指标,通过第一性能参数和第二性能参数对第一配置参数进行验证。该验证指标可以是预先定义的,也可以是第一游戏应用代理商提供的,还可以是终端供应商提供的等,本技术对此不作限定。具体实现过程可以参考前述步骤s35的内容,在此不再赘述。
[0231]
可选的,当第一配置参数验的验证通过后,终端可以删除本地的第二配置参数,以提高存储资源的利用率。
[0232]
s44:终端根据第二配置参数运行第一游戏应用的第一场景。
[0233]
当第一配置参数的验证未通过时,终端根据第二配置参数运行第一游戏应用的第一场景。该第二配置参数为终端本地存储的。其中,该第二配置参数可以为当前终端本地存储的配置参数,例如,该第二配置参数可以是终端出厂时默认的配置参数,或者是上一次服务器推荐的配置参数,或者是终端系统版本更新后的配置参数,或者是第一游戏应用版本更新后的配置参数等,本技术实施例对此不作限定。
[0234]
终端作为一个电子设备,其性能受到使用频率、使用时长或系统版本更新等因素的影响。以手机为例,同款手机刚发布的时候的性能最佳,随着用户的使用时长的增加、或系统版本的一次或多次更新,该手机的性能逐渐下降,例如可使用内存资源越来越少等。通过上述步骤s43和步骤s44,终端在根据第一配置参数运行第一游戏应用的第一场景的过程中,对服务器验证通过的第一配置参数进行再次验证,这样可以避免因同款终端的个体差异所导致的负优化等问题。进一步,当出现负优化时,终端可以恢复原有的第二配置参数,并基于该第二配置参数运行第一游戏应用的第一场景,这样可以确保对第一游戏应用进行有效优化,提高用户体验。
[0235]
s45:终端向服务器发送异常消息。相应的,服务器接收该异常消息。
[0236]
当第一配置参数的验证未通过时,终端还可以向服务器发送异常消息。相应的,服务器接收来自终端的异常消息。该异常消息中可以包括终端的型号信息,第一应用的标识信息,以及终端基于第一配置参数运行第一游戏应用的第一场景时的游戏运行数据。进一步,当上报异常消息的终端的数量与当前安装有第一游戏应用的第一型号的终端的数量(如服务器可以通过统计下载第一游戏应用压缩包来获取当前安装有第一游戏应用的第一型号的终端的数量)之间的比值到达设定比率(如10%)时,服务器根据异常消息中的游戏运行数据重新确定配置参数,即执行步骤s33。
[0237]
示例性的,图5a示出了的通信系统的软件架构的一种示例。如图5a所示,该系统架构中包括云端侧和终端侧(图5a以终端1和终端2为例,且终端1和终端2的型号相同)。在本示例中,相同型号的多个终端向云端侧上报第一游戏应用运行过程中的游戏运行数据。其中,云端侧包括数据上报模块,终端侧包括第一游戏应用模块,采集apk和系统性能模块。
[0238]
第一游戏应用模块,可以执行图4所示实施例中的s42、s44等,用于运行第一游戏应用。第一游戏应用模块中集成有游戏服务sdk,可以执行图3所示实施例中的s31等,用于采集第一游戏应用模块运行第一游戏应用的第一场景时的场景参数,并将场景参数发送给采集apk。
[0239]
系统性能模块,可以执行图3所示实施例中的s31等,用于采集第一游戏应用模块运行第一游戏应用的第一场景时的性能参数,并将性能参数发送给采集apk。
[0240]
采集apk,可以执行图3所示实施例中的s31、s32等,用于获取第一游戏应用模块运算第一游戏应用的第一场景时的场景参数和性能参数,将采集到的场景参数和性能参数上报给云端侧。
[0241]
数据上报模块,可以执行图3所示实施例中的s32等,用于收集终端发送的游戏运行数据,并进行归仓等处理。
[0242]
在图5a所示的场景中,云端侧的数据上报模块可以收集第一游戏应用在相同型号的多个终端中运行过程中的游戏运行数据。该游戏运行数据可以是公测阶段收集的游戏运行数据,或者是现网阶段收集的游戏运行数据,或者是公测阶段和现网阶段收集的游戏运行数据。例如,在第一游戏应用尚未发布之前,数据上报模块可以理解为公测大数据模块,用于收集公测阶段中相同型号的多个终端运行第一游戏应用的第一场景时的游戏运行数据;在第一游戏应用公布之后,数据上报模块可以理解为现网大数据模块,用于收集现网阶段中相同型号的多个终端运行第一游戏应用的第一场景时的游戏运行数据。
[0243]
示例性的,图5b示出了的通信系统的软件架构的另一种示例。如图5b所示,该系统架构中包括云端侧和终端侧。在本示例中,终端侧获取云端侧的第一配置参数,并在第一游戏应用运行过程中对该第一配置参数进行验证。
[0244]
云端侧中包括数据上报模块、人工智能(artificial intelligence,ai)模块、云真机模块和配置模块。其中,数据上报模块的具体实现过程可参见图5a中的描述,在此不再赘述。
[0245]
ai模块,可以执行图3所示实施例中的s33、s34等,用于从数据上报模块中获取第一游戏应用的游戏运行数据,并根据这些游戏运行数据对第一参数推荐模型进行训练,基于训练好的第一参数推荐模型获取第一配置参数。其中,这些游戏运行数据可以是公测阶段的游戏运行数据,或者是现网阶段的游戏运行数据,或者是公测阶段和现网阶段的游戏运行数据。例如,在第一游戏应用尚未公布之前,这些游戏运行数据是公测阶段的游戏运行数据;在第一游戏应用公布之后,这些游戏运行数据可以是现网阶段的游戏运行数据,或者是现网阶段和公测阶段的游戏运行数据。
[0246]
云真机模块,可以执行图3所示实施例中的s35等,用于根据第三性能参数和第四性能参数对第一配置参数进行验证。
[0247]
配置模块,可以执行图4所示实施例中的s41等,用于将云真机模块中验证通过的配置参数发送给终端。
[0248]
终端侧包括:第一游戏应用模块、采集apk、系统性能模块和验证模块。其中,第一游戏应用模块、采集apk以及系统性能模块的实现过程可参见图5a中的描述,在此不再赘述。
[0249]
采集apk,还可以执行图4所示实施例的s41等,用于从云端侧获取配置参数。例如,
采集apk主动向配置模块发送获取第一配置参数的请求消息,并接收来自配置模块的第一配置参数;或者,采集apk被动接收配置模块推送的第一配置参数,例如,在公测阶段,配置模块可以根据终端的标识信息主动将第一配置参数推送给采集apk。
[0250]
系统性能模块,用于将第一配置参数写入对应的性能部件,以配置终端的软件资源和/或硬件资源,如执行图4所示实施例中的s42、s44等。
[0251]
验证模块,可以执行图4所示实施例中的s43等,用于对云端侧推荐的第一配置参数进行验证,并将验证结果反馈给系统性能模块。例如,验证未通过,则系统性能模块将第二配置参数写入对应的性能部件,以基于第二配置参数运行第一游戏应用的第一场景;反之,则继续基于第一配置参数运行第一游戏应用的一场景。
[0252]
下面结合图5a和图5b所示的系统架构,对本技术实施例提供的性能优化方法进行介绍。图6示出了本技术实施例提供的性能优化方法的流程示意图。
[0253]
s601:终端根据第二配置参数运行第一游戏应用。其中,终端的型号为第一型号。
[0254]
例如,终端可以根据第二配置参数运行第一游戏应用的第一场景。其中,有关第二配置参数的描述请参考前述步骤s31中有关第二配置参数的描述,在此不再赘述。
[0255]
s602:第一游戏应用模块将第二场景参数发送给采集apk。相应的,采集apk接收到第二场景参数。
[0256]
在第一游戏应用运行过程中,第一游戏应用模块中集成的游戏服务sdk可以识别出第一游戏应用运行过程中的高负载场景(即第一场景),并采集该高负载场景下的场景参数,然后将采集得到的场景参数发送给采集apk。第二场景参数可以包括高负载场景出入标识、场景类型或实例数据中的一项或多项。其中,步骤s602的具体实现方式可以参考前述图3中步骤s31所描述的内容,在此不再赘述。
[0257]
s603:系统性能模块将第二性能参数发送给采集apk。相应的,采集apk接收到第二性能参数。
[0258]
在第一游戏应用运行过程中,采集apk可以根据sdk上报的第二场景参数,如高负载场景出入标识,通过系统性能模块获取第二性能参数。该第二性能参数可以包括首帧的渲染时长、平均帧率、抖动率、低帧率比率、耗电量、设备壳温或丢帧数中的一项或多项。其中,步骤s603的具体实现方式可以参考前述图3中步骤s31所描述的内容,在此不再赘述。
[0259]
s604:采集apk将第二游戏运行数据发送给云端服务器。云端服务器中的数据上报模块接收第一游戏运行数据。
[0260]
第二游戏运行数据中包括终端的型号信息,第一应用的标识信息,第二场景参数和第二性能参数。可选的,第二游戏运行数据中还可以包括终端的标识信息。其中,步骤s604的具体实现方式可以参考前述图3中步骤s32所描述的内容,在此不再赘述。
[0261]
通过步骤s601至步骤s604,数据上报模块可以收集到来自多个同型号的终端的第二游戏运行数据,记为第一游戏运行数据。第一游戏运行数据中包括第二游戏运行数据。
[0262]
s605:数据上报模块向ai模块发送第一游戏运行数据。相应的,ai模块接收第一游戏运行数据。
[0263]
例如,数据上报模块可以周期性(如每周,或一个月等)的将获取到的游戏运行数据发送给ai模块;或者,数据上报模块也可以非周期性的将获取到的游戏运行数据发送给ai模块。例如,当获取到游戏运行数据的大小达到设定阈值(如1000份第二游戏运行数据)
时,数据上报模块将获取到的游戏运行数据发送给ai模块。再例如,当发送第二游戏运行数据的终端的数量与当前安装有第一游戏应用的第一型号的终端的数量之间的比值达到设定比例(如10%或15%等)时,数据上报模块将获取到的游戏运行数据发送给ai模块。
[0264]
s606:ai模块根据第一游戏运行数据训练第一参数推荐模型。
[0265]
例如,ai模块可以根据第一游戏运行数据构建训练样本,基于训练样本对第一参数推荐模型进行训练。其中,步骤s606的具体实现方式可以参考前述图3中步骤s33所描述的内容,在此不再赘述。
[0266]
s607:ai模块根据第一参数推荐模型获取第一配置参数。
[0267]
例如,ai模块可以将终端的型号信息以及第一游戏应用的标识信息输入到第一参数推荐模型中,得到第一配置参数。第一配置参数可以包括但不限于如下参数中的一项或多项:cpu运行频点、gpu运行频点、cpu大小核的数量、gpu大小、触发温控策略的最高温度或网速优先级等。其中,步骤s607的具体实现方式可以参考前述图3中步骤s34所描述的内容,在此不再赘述。
[0268]
s608:ai模块将第一配置参数发送给云真机模块。相应的,云真机模块接收第一配置参数。
[0269]
s609:ai模块对第一配置参数进行验证。
[0270]
ai模块可以根据第三性能参数和第四性能参数对第一配置参数进行验证。其中,步骤s609的具体实现方式可以参考前述图3中步骤s35所描述的内容,在此不再赘述。如果验证未通过,则云真机模块可以将验证未通过的消息发送给ai模块,以便ai模块重新训练第一参数配置模块,即重复执行步骤s606至步骤s609的内容。如果验证通过,则云真机模块可以将第一配置参数发送给配置模块。
[0271]
s610:云真机模块将第一配置参数发送给配置模块。相应的,配置模块接收第一配置参数。配置模块接收到第一配置参数后,可以更新配置参数,如删除本地的第三配置参数,并存储第一配置参数。
[0272]
示例性的,配置模块接收到第一配置参数后,可以主动将第一配置参数推送给安装有第一游戏应用的第一型号的一个或多个终端,以便该一个或多个终端在下次启动第一游戏应用后,可以根据第一配置参数运行该第一游戏应用。
[0273]
或者,配置模块也可以不将第一配置参数主动推送给终端。例如,在终端启动第一游戏应用时,采集apk可以主动向配置模块请求获取第一配置参数,如采集apk向配置模块发送第一请求消息,第一请求消息包括终端的型号信息和第一游戏应用的标识信息;配置模块向采集apk发送第一响应消息,该第一响应消息包括第一配置参数。
[0274]
其中,步骤s610的具体实现方式可以参考前述图4中步骤s41所描述的内容,在此不再赘述。在本示例中,以配置模块主动将第一配置参数推荐给终端为例进行描述。
[0275]
s611:配置模块将第一配置参数发送给采集apk。
[0276]
配置模块可以将第一配置参数推送给一个或多个终端的采集apk。多个终端皆安装有第一游戏应用,且该多个终端的型号皆为第一型号。例如,配置模型可以根据终端的上网信息确定该终端的标识信息,并根据该终端的标识信息将第一配置参数推送给该终端。又例如,配置模块可以根据公测阶段终端上报的游戏运行数据中的终端的标识信息,将第一配置参数推送给该终端。其中,第一配置参数可以包括第一场景的标识信息,以及第一场
景的标识信息所对应的如下参数中的一项或多项:cpu运行频点、gpu运行频点、cpu大小核的数量、gpu大小、触发温控策略的最高温度或网速优先级等。
[0277]
s612:终端启动第一游戏应用。
[0278]
s613:采集apk将第一配置参数发送给系统性能模块。相应的,系统性能模块接收第一配置参数。
[0279]
采集apk接收到第一配置参数后,将第一配置参数发送给系统性能模块。系统性能模块可以根据第一配置参数配置第一游戏应用运行过程中第一场景下第一游戏应用可使用的软件资源,或可使用的硬件资源,或可使用的软件资源和硬件资源,即将参数写入系统相应的性能部件。
[0280]
s614:终端根据第一配置参数运行第一游戏应用的第一场景。其中,步骤s613、步骤s614的具体实现方式可以参考前述图4中步骤s42所描述的内容,在此不再赘述。
[0281]
s615:系统性能模块将第一性能参数发送给验证模块。相应的,验证模块接收到第一性能参数。
[0282]
在根据第一配置参数运行第一游戏应用过程中,系统性能模块可以采集第一场景下的第一性能参数,并将该第一性能参数发送给验证模块。例如,系统性能模块可以根据游戏服务sdk采集的第一场景参数中的高负载场景出入标识确定第一性能参数,其中,第一场景参数为根据第一配置参数运行第一游戏应用过程中第一场景对应的场景参数。
[0283]
s616:验证模块对第一配置参数的验证是否通过。如果验证模块对第一配置参数的验证通过,则执行步骤s617所示的内容继续使用第一配置参数运行第一游戏应用;反之,则执行步骤s617至s619所示的内容。
[0284]
其中,步骤s616的具体实现方式可以参考前述图4中步骤s43所描述的内容,在此不再赘述。
[0285]
s617:终端继续根据第一配置参数运行第一游戏应用的第一场景。
[0286]
可选的,终端可以删除本地的第二配置参数,以提高存储资源的利用率。
[0287]
s618:验证模块向采集apk发送验证未通过的消息。相应的,采集apk接收到验证未通过的消息。
[0288]
s619:采集apk向数据上报模块发异常消息。相应的,数据上报模块接收异常消息。
[0289]
异常消息包括终端的型号信息,第一游戏应用的标识信息以及第一场景参数和第一性能参数。具体的,在验证未通过的情况下,采集apk可以采集根据第一配置参数运行第一游戏应用的第一场景时的第一场景参数和第一性能参数,并将采集的第一场景参数和第一性能参数发送给数据上报模块。其中,步骤619的具体实现方式可以参考前述图4中步骤s45所描述的内容,在此不再赘述。
[0290]
s620:终端根据第二配置参数运行第一游戏应用的第一场景。
[0291]
在验证未通过的情况下,终端根据第二配置参数运行第一游戏应用。其中,步骤620的具体实现方式可以参考前述图4中步骤s44所描述的内容,在此不再赘述。
[0292]
可以理解的是,图6中各个步骤的执行顺序仅为一种示例,本技术实施例对此并不限定。例如,采集apk可以先获取第二场景参数,再获取第二性能参数;也可以同时获取第二场景参数和第二性能参数。又例如,终端启动第一游戏应用时触发采集apk获取第一配置参数,也可以是配置模块获取到第一配置参数后主动将第一配置参数发送给采集apk。再例
如,当验证未通过时,终端可以先向数据上报模块发送异常消息,再根据第二配置参数运行第一游戏应用;也可以在向数据上报模块发送异常消息的同时根据第二配置参数运行第一游戏应用。
[0293]
图7示出了本技术实施例提供的性能优化方法的另一种流程示意图。在本示例中,由终端触发服务器获取第一配置参数。其中,步骤s701至s706、s710至s712、s714至s722分别与图6所示实施例中的步骤s601至s606、s608至s610、s612至s620对应相同,不同之处在于:
[0294]
s707:采集apk向配置模块发送第一请求消息。相应的,配置模块接收第一请求消息。
[0295]
第一请求消息中包括终端的型号信息和第一游戏应用的标识信息。该第一请求消息用于请求获取第一游戏应用的配置参数。例如,终端可以周期性(如每周)的向服务器发送第以请求消息,或者也可以非周期性的向服务器发送第一请求消息,如在第一游戏应用版本更新后发送第一请求消息。
[0296]
s708:配置模块将第一请求消息转发给ai模块。相应的,ai模块接收第一请求消息。
[0297]
s709:ai模块根据第一参数推荐模型,获取第一配置参数。
[0298]
ai模块接收到第一请求消息后,作为响应,将终端的型号信息和第一游戏应用的标识信息输入到第一参数推荐模型中,得到第一配置参数。
[0299]
s713:配置模块向采集模块发送第一响应消息。响应的,采集模块接收第一响应消息。第一响应消息中包括第一配置参数。
[0300]
需要说明的是,ai模块响应于第一请求消息获取第一配置参数后,可以通过云真机模块对第一配置参数进行验证,并将验证通过的配置参数携带在第一响应消息中发送给终端,或者,ai模块响应于第一请求消息获取第一配置参数后,也可以直接将第一配置参数携带在第一响应消息中发送给终端设备,这样可以减少云端侧响应第一请求消息的时长。
[0301]
可以理解的是,图7中各个步骤的执行顺序仅为一种示例,本技术实施例对此并不限定。例如,采集apk可以在云端获取第一配置参数之前向云端发送第一请求消息,也可以在第一游戏应用启动后向云端发送第一请求消息。具体的,采集apk在第一游戏应用启动时向云端的配置模块发送第一请求消息,即采集apk在步骤s714之后,向配置模块发送第一请求消息;相应的,配置模块接收到第一请求消息后,作为响应,将第一配置参数携带在第一响应消息中发送给采集apk。
[0302]
以上实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。
[0303]
基于以上实施例,本技术还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被计算机执行时,使得所述计算机执行以上实施例提供的应用程序的性能优化方法。
[0304]
本技术实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行以上实施例提供的应用程序的性能优化方法。
[0305]
本技术实施例是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由指令实现流程图和/或方框图中的每一流程
和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0306]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0307]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0308]
以上所述,以上实施例仅用以对本技术的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献