运算资源分配的方法、装置、电子设备和存储介质与流程

专利查询10月前  89



1.本技术涉及计算机领域,具体涉及一种运算资源分配的方法、装置、电子设备和存储介质。


背景技术:

2.在云游戏的过程中,玩家将对游戏的操作指令发送到运行着游戏的服务器;服务器响应玩家的操作指令,使自身正在运行的游戏产生与操作指令对应的画面,然后再将产生的游戏画面传输到玩家所持的终端。一台服务器通常可以运行多个应用实例,每个应用实例对应一个玩家。
3.然而,在现有技术中,多个应用实例在服务器运行时,常常会出现被分配到的运算资源不均匀的问题,从而导致少量应用实例因被分配的运算资源较多,可以流畅运行;而大量应用实例因被分配的运算资源较少,而导致画面卡顿。


技术实现要素:

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.图1a是本技术实施例提供的运算资源分配的方法的场景示意图;
34.图1b是本技术一实施例提供的运算资源分配的方法的流程示意图;
35.图2是本技术另一实施例提供的运算资源分配的方法的流程示意图;
36.图3是本技术一实施例提供的运算资源分配的装置的一种结构示意图;
37.图4是本技术实施例提供的电子设备的结构示意图。
具体实施方式
38.元宇宙(metaverse)是指所有的现实世界中的人都有一个对应的网络分身avatar,metaverse的概念越来越热门。随着更多用户参与到metaverse之中,metaverse的服务器也面临着越来越多的算力需求,因此提升服务器的资源利用率也越来越重要。
39.云游戏是元宇宙的一种重要表现形式,用户通过云游戏的方式登录到虚拟世界中,是一种很常见的方法。用户无需额外安装软件,仅通过浏览器就可以登录,对用户来说较为方便,并且能够降低用户游玩游戏的成本。
40.对于提供云游戏的服务方来说,为了节约成本,通常需要在一个服务器运行多个应用实例,然而,对于多个应用实例中的每个客户端来说,被置于前台的应用实例能够被优先分配gpu资源,而其他未处于前台的应用实例被分配到的gpu资源较少;从而导致少量应用实例因被分配的运算资源较多,可以流畅运行;而大量应用实例因被分配的运算资源较少,而导致画面卡顿。
41.上述问题是发明人付出创造性劳动后所发现的。
42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
43.本技术实施例提供一种运算资源分配的方法、装置、电子设备和存储介质。
44.其中,该运算资源分配的装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(personal computer,pc)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
45.在一些实施例中,该运算资源分配的装置还可以集成在多个电子设备中,比如,运算资源分配的装置可以集成在多个服务器中,由多个服务器来实现本技术的运算资源分配的方法。
46.在一些实施例中,服务器也可以以终端的形式来实现。
47.例如,参考图1a,上述的电子设备可以执行如下方法:获取运行在服务器的全部应用实例;将所述全部应用实例均置为后台运行状态,以使所述服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例。
48.在本技术其中一种实施例中的一种运算资源分配的方法可以运行于服务器中,该服务器与终端设备相配合。其中,终端设备可以为本地终端设备。当运算资源分配的方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
49.在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,角色控制方法的储存与运行是在云游戏服务器上完成的,客户端设备用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,终端、电视机、计算机、掌上电脑等;但是进行角色控制的终端设备为云端的云游戏服务器。在进行游戏时,用户操作客户端设备
向云游戏服务器发送操作指令,如触控操作的操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
50.在一可选的实施方式中,可以基于unity的unity render streaming技术在服务器同时开启多个客户端,实现服务器中运行的应用实例与用户终端点对点peer-to-peer的串流方式,从而完成音视频串流以及远程控制。
51.以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
52.在本实施例中,提供了一种运算资源分配的方法,如图1b所示,该运算资源分配的方法应用在终端,该方法的具体流程可以如下步骤110至步骤120:
53.110、确定所述云服务器中当前已启动的应用实例。
54.应用实例为运行在云服务器中的与游戏对应的实例客户端。可选地,全部应用实例在云服务器运行时,可以不做区分的全部运行在云服务器的缓存中,也可以分别运行在云服务器分割出的容器(container)中。容器是一种轻量级虚拟化技术,所谓轻量级虚拟化,指的是一种操作系统层虚拟化技术,这种技术允许一个操作系统上的供用户使用的存储空间被分割成多个独立的单元在内核中运行,且这些独立的单元彼此互不干扰,每个独立的单元便可以被称为一个容器。
55.云服务器可以在运行维持云服务器正常运转的进程的前提下,只运行应用实例;也可以在上述前提下,既运行应用实例,又运行其他应用程序。云服务器中的应用程序的运行情况不应该理解为是对本技术的限制。
56.可选地,在一种具体实施方式中,步骤110可以包括:获取呈现在显示界面的全部应用实例的窗口;其中,所述显示界面为所述服务器对应的显示界面。
57.在上述的实施方式中,可以通过获取呈现在显示界面的应用实例的窗口的方式来获取运行在服务器的全部的应用实例,也可以通过获取服务器对应的任务管理器中运行的进程的方式来获取运行在服务器的全部的应用实例。获取运行在服务器的全部应用实例的具体方式不应该理解为是对本技术的限制。
58.可选地,在一种具体实施方式中,步骤:“获取呈现在显示界面的全部应用实例的窗口”,包括:利用enumwindows函数枚举所述显示界面上的顶层窗口。
59.enumwindows函数可以枚举位于显示界面的所有顶层窗口,并将窗口句柄传送给应用程序定义的回调函数。回调函数返回false将停止枚举,否则enumwindows函数将继续枚举,直到全部顶层窗口被枚举完为止。
60.顶层窗口指的是能够独立存在的窗口;与顶层窗口相对的是非顶层窗口,非顶层窗口为无法独立存在的窗口,非顶层窗口需要依附在顶层窗口中。
61.120、将所述已启动的应用实例均设置为后台运行状态,以使所述云服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例。
62.后台运行状态指的是不在云服务器对应的显示界面显示且依然在运行的状态,例如应用实例的最小化状态或隐藏状态均属于后台运行状态。
63.运算资源可以为图像处理器(graphics processing unit,简称gpu)运算资源,gpu运算资源主要用于进行图像和图形相关的运算工作。可以理解,运算资源也可以为其他
运算资源,例如中央处理器(central processing unit,简称cpu)运算资源,运算资源的具体类型不应该理解为是对本技术的限制。
64.处于后台运行状态的应用实例会被云服务器均匀分配运算资源,因此,可以通过将运行在云服务器的全部应用实例均置为后台运行状态的方式,使得云服务器在全部应用实例中均分运算资源。
65.可以理解,上述的应用实例可以是运行同一个游戏的应用实例,也可以是运行不同游戏的应用实例;应用实例所对应的游戏是否为同一个游戏,不应该理解为是对本技术的限制。
66.可选地,在一种具体实施方式中,步骤120具体可以包括如下步骤a1至步骤a2:
67.a1、获取每个所述已启动的应用实例的窗口句柄。
68.窗口句柄指的是每个应用实例的窗口所唯一对应的一个表征自身身份的标识。
69.可选地,可以通过getwindowthreadprocessid函数查找每个已启动的应用实例的窗口句柄。
70.a2、通过所述窗口句柄将对应的应用实例的运行状态修改为后台运行状态。
71.在上述的实施方式中,可以根据窗口句柄来将对应的应用实例置为后台运行状态。由于每个应用实例各自对应唯一的一个窗口句柄,因此利用窗口句柄将应用实例设置为后台运行状态,可以既不造成重复,又避免了遗漏,准确且高效地实现对全部应用实例的运行状态的调整。
72.可选地,可以通过showwindow函数对应用实例的运行状态进行调整。showwindow函数的功能是设置指定窗口的显示状态。因此,可以利用showwindow函数向每个窗口句柄对应的应用实例的窗口发送表示将运行状态调整为后台运行状态的状态调整指令。
73.可选地,在另一种具体实施方式中,步骤120具体可以包括如下步骤b1至步骤b2:
74.b1、获取所述已启动的应用实例当前的窗口状态。
75.b2、若所述已启动的应用实例中的目标应用实例的窗口状态为置顶运行状态,则将所述目标应用实例的窗口状态从置顶运行状态更改为后台运行状态。
76.置顶运行状态指的是前台运行状态,即:若云服务器有对应的显示屏,则处于置顶运行状态的目标应用实例可以在该显示屏的桌面任务栏被观察到。
77.在上述的实施方式中,可以先对每个应用实例的窗口状态进行判断,若某一窗口原本就处于后台运行状态,则可以维持该窗口的运行状态不变,不对其进行额外的处理操作;若某一窗口原本未处于后台运行状态,例如处于前台运行状态,则可以将该窗口调整为后台运行状态。通过上述方式,先对每个应用实例的窗口状态进行确定,然后再将未处于后台运行状态的窗口置于后台运行状态,上述实施方式对应用实例的运行状态的调节更具有针对性,节省了调整运行状态相关的运算资源。
78.可选地,将未处于后台运行状态的窗口置于后台运行状态具体也可以通过showwindow函数进行,调整运行状态的具体方式不应该理解为是对本技术的限制。
79.可选地,本技术实施例在调整应用实例的窗口状态时也可以通过如下方式实现:在不管应用实例原本处于何种运行状态的情况下,向全部的应用实例统一传递相同的状态调整指令,从而实现对每个应用实例的运行状态的快速调整。
80.可选地,在一种具体实施方式中,本技术实施例提供的方法还可以包括如下步骤
130至步骤150:
81.130、确定所述云服务器中当前已启动的应用实例的数量。
82.140、根据所述已启动的应用实例的数量确定所述云服务器中已启动的应用实例的最大帧率。
83.应用实例的数量与应用实例的最大帧率之间存在映射关系。可以获取运行在云服务器中的应用实例的数量,并根据应用实例的运行数量与应用实例的最大帧率的映射关系,确定当前运行在云服务器的每个应用实例的最大帧率。依据运行在服务器的应用实例的实际数量确定对应的最大帧率,利于在应用实例处于不同运行数量的情况下,均能够维持稳定顺畅运行。
84.可选地,在一种具体实施方式中,步骤140具体可以包括如下步骤141至步骤142:
85.141、确定预设的最大帧率的帧率范围。
86.142、根据所述已启动的应用实例的数量和所述帧率范围,确定所述云服务器中已启动的应用实例的最大帧率。
87.步骤142具体可以根据应用实例的数量与应用实例的最大帧率之间的映射关系来确定最大帧率。
88.应用实例的数量与应用实例的最大帧率之间的映射关系可以是预先设置的。上述的映射关系可以是应用实例的运行数量的数量区间与帧率值的映射关系。例如,应用实例的运行数量的数量区间可以包括:[a1,a2)、[a2,a3)、[a3,a4)、
……
[ai,ai+1)共i个数量区间,帧率值包括b1、b2、b3、

bi共i个帧率值,应用实例的运行数量与帧率运行上限值的映射关系可以是:[a1,a2)与b1映射,[a2,a3)与b2映射,[a3,a4)与b3映射,
……
[ai,ai+1)与bi映射。
[0089]
上述的映射关系还可以是应用实例的运行数量的数量值与帧率值的映射关系。例如,应用实例的运行数量可以包括:c1、c2、c3
……
ci共i个数量,帧率值包括b1、b2、b3、

bi共i个帧率值,应用实例的运行数量与帧率运行上限值的映射关系可以是:c1与b1映射,c2与b2映射,c3与b3映射,
……
ci与bi映射。其中,最大帧率的取值范围具体可以在30帧至60帧,例如,不妨设不超过三个应用实例的情况下均对应60帧;超过三个应用实例的情况下,每超过一个应用实例,最大帧率便减少5帧。应当理解,映射关系的具体关系类型不应该理解为是对本技术的限制。
[0090]
150、根据所述最大帧率调整所述已启动的应用实例对应的运算资源。
[0091]
可选地,在一种具体实施方式中,在步骤150之前,本技术实施例还可以包括如下步骤:当云服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例后,获取每个所述应用实例当前的帧率。
[0092]
相应的,步骤150具体可以包括如下步骤151至步骤152:
[0093]
151、将每个所述应用实例当前的帧率与所述最大帧率分别进行比较。
[0094]
152、若所述应用实例中的目标应用实例当前的帧率大于所述最大帧率,则减少所述目标应用实例的运算资源。
[0095]
在上述实施方式中,可以分别获取每个应用实例的实际运行帧率(即当前的帧率)以及每个应用实例对应的应当运行的最大帧率,然后将两者进行比较。若实际运行帧率大于其应用运行的最大帧率,则可以对该应用实例的运算资源进行缩减,从而尽可能地保障
全部应用实例的流畅运行。
[0096]
可选地,在一种具体实施方式中,在步骤120之后,本技术实施例还可以包括如下步骤s1至步骤s2:
[0097]
s1、响应于目标终端发送的应用数据获取指令,确定所述应用数据获取指令对应的目标应用实例。
[0098]
目标终端为游戏玩家所持有的终端,游戏玩家可以通过执行游戏操作,在目标终端生成应用数据获取指令,该应用数据获取指令可以由目标终端发送到云服务器,以便云服务器根据应用数据获取指令中的身份标识,查找到对应的目标应用实例,然后将应用数据获取指令发送到目标应用实例。
[0099]
s2、根据所述应用数据获取指令,将所述目标应用实例对应的应用数据发送至所述目标终端,以使所述目标终端显示所述应用数据对应的图形用户界面。
[0100]
目标应用实例可以根据应用数据获取指令生成对应的应用数据,并且该应用数据可以经云服务器返回目标终端。从而使得持有目标终端的游戏玩家可以观看到应用数据对应的图像用户界面。
[0101]
在上述实施方式中,可以使得游戏玩家在自身的终端设备的性能不够强大的情况下依然可以玩到对性能要求较高的游戏,丰富了游戏玩家的娱乐生活。
[0102]
本技术实施例提供的运算资源分配的方法中,可以获取运行在服务器的全部的应用实例,然后再将运行在服务器的全部应用实例均置为后台运行状态。由于后台运行状态的应用程序会均分运算资源,因此,被置为后台运行状态的全部应用实例可以均分服务器的运算资源。
[0103]
在本技术中,通过将运行在服务器的全部应用实例均置为后台运行状态的方式,使服务器将运算资源均匀分配给全部应用实例中的每个应用实例,从而避免了服务器中运行的多个应用实例被分配到的运算资源不均匀的问题。
[0104]
根据上述实施例所描述的方法,以下将作进一步详细说明。
[0105]
在本实施例中,将以通过枚举窗口获取应用实例为例,对本技术实施例的方法进行详细说明。
[0106]
如图2所示,一种运算资源分配的方法具体流程如下:
[0107]
201、利用enumwindows函数枚举显示界面上的顶层窗口,其中,显示界面为服务器对应的显示界面。
[0108]
202、利用getwindowthreadprocessid函数查找每个应用实例的窗口所对应的创建进程。
[0109]
203、获取每个创建进程的标志符;其中,所述标志符为相应的应用实例的窗口所对应的身份标识。
[0110]
204、利用showwindow函数,向每个身份标识对应的应用实例的窗口发送状态调整指令;其中,状态调整指令用于将接收到该状态调整指令的窗口的运行状态调整为后台运行状态。
[0111]
205、获取运行在所述服务器的全部应用实例的数量,其中,所述数量为客户端运行数量。
[0112]
206、根据客户端运行数量与帧率运行上限值的映射关系,确定运行在所述服务器
的全部应用实例的帧率运行上限值,其中,所述帧率运行上限值为所述应用实例对应的游戏的运行帧率的最大值。
[0113]
可选地,在一种具体实施方式中,上述步骤201至步骤206可以通过如下源代码实现:
[0114][0115][0116]
由上可知,本技术实施例提供的运算资源分配的方法中,可以获取运行在服务器的全部的应用实例,然后再将运行在服务器的全部应用实例均置为后台运行状态。由于后台运行状态的应用程序会均分运算资源,因此,被置为后台运行状态的全部应用实例可以均分服务器的运算资源。
[0117]
在本技术中,通过将运行在服务器的全部应用实例均置为后台运行状态的方式,使服务器将运算资源均匀分配给全部应用实例中的每个应用实例,从而避免了服务器中运行的多个应用实例被分配到的运算资源不均匀的问题。
[0118]
为了更好地实施以上方法,本技术实施例还提供一种运算资源分配的装置,该运算资源分配的装置具体可以集成在电子设备中,该电子设备可以为服务器。其中,服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
[0119]
比如,在本实施例中,将以运算资源分配的装置具体集成在服务器为例,对本技术实施例的方法进行详细说明。
[0120]
例如,如图3所示,该运算资源分配的装置可以包括:
[0121]
本技术实施例还提供一种运算资源分配的装置,用于对实现云游戏的多个游戏客户端进行运算资源的分配,所述装置包括:
[0122]
实例确定单元301,用于确定所述云服务器中当前已启动的应用实例;
[0123]
运行状态调整单元302,用于将所述已启动的应用实例均设置为后台运行状态,以
使所述云服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例。
[0124]
在一些实施例中,所述装置还包括:
[0125]
实例数量确定单元,用于确定所述云服务器中当前已启动的应用实例的数量;
[0126]
最大帧率确定单元,用于根据所述已启动的应用实例的数量确定所述云服务器中已启动的应用实例的最大帧率;
[0127]
运算资源调整单元,用于根据所述最大帧率调整所述已启动的应用实例对应的运算资源。
[0128]
在一些实施例中,所述最大帧率确定单元,包括:
[0129]
帧率范围确定子单元,用于确定预设的最大帧率的帧率范围;
[0130]
应用实例帧率子单元,用于根据所述已启动的应用实例的数量和所述帧率范围,确定所述云服务器中已启动的应用实例的最大帧率。
[0131]
在一些实施例中,所述装置还包括:
[0132]
当前帧率获取单元,用于当云服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例后,获取每个所述应用实例当前的帧率;
[0133]
所述运算资源调整单元,包括:
[0134]
帧率比较子单元,用于将每个所述应用实例当前的帧率与所述最大帧率分别进行比较;
[0135]
运算资源减少子单元,用于当所述应用实例中的目标应用实例当前的帧率大于所述最大帧率时,则减少所述目标应用实例的运算资源。
[0136]
在一些实施例中,运行状态调整单元302,包括:
[0137]
窗口句柄子单元,用于获取每个所述已启动的应用实例的窗口句柄;
[0138]
状态修改子单元,用于通过所述窗口句柄将对应的应用实例的运行状态修改为后台运行状态。
[0139]
在一些实施例中,所述装置还包括:
[0140]
目标实例确定单元,用于响应于目标终端发送的应用数据获取指令,确定所述应用数据获取指令对应的目标应用实例;
[0141]
应用数据发送单元,用于根据所述应用数据获取指令,将所述目标应用实例对应的应用数据发送至所述目标终端,以使所述目标终端显示所述应用数据对应的图形用户界面。
[0142]
在一些实施例中,运行状态调整单元302,包括:
[0143]
窗口状态获取子单元,用于获取所述已启动的应用实例当前的窗口状态;
[0144]
状态更改子单元,用于当所述已启动的应用实例中的目标应用实例的窗口状态为置顶运行状态时,将所述目标应用实例的窗口状态从置顶运行状态更改为后台运行状态。
[0145]
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
[0146]
由上可知,在本技术中,可以获取运行在服务器的全部的应用实例,然后再将运行在服务器的全部应用实例均置为后台运行状态。由于后台运行状态的应用程序会均分运算资源,因此,被置为后台运行状态的全部应用实例可以均分服务器的运算资源。通过将运行
在服务器的全部应用实例均置为后台运行状态的方式,使服务器将运算资源均匀分配给全部应用实例中的每个应用实例,从而避免了服务器中运行的多个应用实例被分配到的运算资源不均匀的问题。
[0147]
在本技术中,可以改善现有技术中的多个游戏客户端的运算资源分配的不均的问题。
[0148]
本技术实施例还提供一种电子设备,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑,等等;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,等等。
[0149]
在一些实施例中,该运算资源分配的装置还可以集成在多个电子设备中,比如,运算资源分配的装置可以集成在多个服务器中,由多个服务器来实现本技术的运算资源分配的方法。
[0150]
在本实施例中,将以本实施例的电子设备是电子设备为例进行详细描述,比如,如图4所示,其示出了本技术实施例所涉及的电子设备的结构示意图,具体来讲:
[0151]
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403、输入模块404以及通信模块405等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0152]
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。在一些实施例中,处理器401可包括一个或多个处理核心;在一些实施例中,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
[0153]
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
[0154]
电子设备还包括给各个部件供电的电源403,在一些实施例中,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0155]
该电子设备还可包括输入模块404,该输入模块404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
[0156]
该电子设备还可包括通信模块405,在一些实施例中通信模块405可以包括无线模
块,电子设备可以通过该通信模块405的无线模块进行短距离无线传输,从而为用户提供了无线的宽带互联网访问。比如,该通信模块405可以用于帮助用户收发电子邮件、浏览网页和访问流式媒体等。
[0157]
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
[0158]
确定所述云服务器中当前已启动的应用实例;将所述已启动的应用实例均设置为后台运行状态,以使所述云服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例。
[0159]
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0160]
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
[0161]
为此,本技术实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本技术实施例所提供的任一种运算资源分配的方法中的步骤。例如,该指令可以执行如下步骤:
[0162]
确定所述云服务器中当前已启动的应用实例;将所述已启动的应用实例均设置为后台运行状态,以使所述云服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例。
[0163]
其中,该存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
[0164]
根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中提供的各种可选实现方式中提供的方法。
[0165]
由于该存储介质中所存储的指令,可以执行本技术实施例所提供的任一种运算资源分配方法中的步骤,因此,可以实现本技术实施例所提供的任一种运算资源分配方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
[0166]
以上对本技术实施例所提供的一种运算资源分配方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。

技术特征:
1.一种运算资源分配的方法,其特征在于,应用于云服务器,所述方法包括:确定所述云服务器中当前已启动的应用实例;将所述已启动的应用实例均设置为后台运行状态,以使所述云服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定所述云服务器中当前已启动的应用实例的数量;根据所述已启动的应用实例的数量确定所述云服务器中已启动的应用实例的最大帧率;根据所述最大帧率调整所述已启动的应用实例对应的运算资源。3.根据权利要求2所述的方法,其特征在于,所述根据所述已启动的应用实例的数量确定所述云服务器中已启动的应用实例的最大帧率,包括:确定预设的最大帧率的帧率范围;根据所述已启动的应用实例的数量和所述帧率范围,确定所述云服务器中已启动的应用实例的最大帧率。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:当云服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例后,获取每个所述应用实例当前的帧率;所述根据所述最大帧率调整所述已启动的应用实例对应的运算资源,包括:将每个所述应用实例当前的帧率与所述最大帧率分别进行比较;若所述应用实例中的目标应用实例当前的帧率大于所述最大帧率,则减少所述目标应用实例的运算资源。5.根据权利要求1所述的方法,其特征在于,所述将所述已启动的应用实例均设置为后台运行状态,包括:获取每个所述已启动的应用实例的窗口句柄;通过所述窗口句柄将对应的应用实例的运行状态修改为后台运行状态。6.根据权利要求1所述的方法,其特征在于,所述将所述已启动的应用实例均设置为后台运行状态之后,所述方法还包括:响应于目标终端发送的应用数据获取指令,确定所述应用数据获取指令对应的目标应用实例;根据所述应用数据获取指令,将所述目标应用实例对应的应用数据发送至所述目标终端,以使所述目标终端显示所述应用数据对应的图形用户界面。7.根据权利要求1所述的方法,其特征在于,所述将所述已启动的应用实例均设置为后台运行状态,包括:获取所述已启动的应用实例当前的窗口状态;若所述已启动的应用实例中的目标应用实例的窗口状态为置顶运行状态,则将所述目标应用实例的窗口状态从置顶运行状态更改为后台运行状态。8.一种运算资源分配的装置,其特征在于,应用于云服务器,所述装置包括:实例确定单元,用于确定所述云服务器中当前已启动的应用实例;运行状态调整单元,用于将所述已启动的应用实例均设置为后台运行状态,以使所述
云服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例。9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~7任一项所述的运算资源分配的方法中的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~7任一项所述的运算资源分配的方法中的步骤。

技术总结
本申请实施例公开一种运算资源分配的方法、装置、电子设备和存储介质;用于对实现云游戏的多个游戏客户端进行运算资源的分配,所述方法包括:确定所述云服务器中当前已启动的应用实例;将所述已启动的应用实例均设置为后台运行状态,以使所述云服务器将运算资源均匀分配给处于后台运行状态的每个所述应用实例。在本申请中,通过将运行在云服务器的全部应用实例均置为后台运行状态的方式,使服务器将运算资源均匀分配给全部应用实例中的每个应用实例,从而避免了服务器中运行的多个应用实例被分配到的运算资源不均匀的问题。分配到的运算资源不均匀的问题。分配到的运算资源不均匀的问题。


技术研发人员:陈铭 刘柏 黄万飞
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2021.11.30
技术公布日:2022/3/8

最新回复(0)