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

内存分配方法、装置、设备及存储介质与流程

2022-03-13 20:30:37 来源:中国专利 TAG:


1.本技术涉及存储技术,尤其涉及一种内存分配方法、装置、设备及存储介质。


背景技术:

2.作为连接中央处理器(central processing unit,cpu)和外存设备的通道,内存起到数据缓冲和数据交换作用。在操作系统中存在多个占用内存的应用模块(例如运行在操作系统上的应用程序)和服务模块(例如在操作系统底层的各种服务)。为了描述简洁,在此将应用模块和服务模块统称为功能模块。
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.识别所述多个功能模块所在系统所属的业务场景;
34.在预先存储的目标内存分配策略中,查找与所述业务场景对应的目标内存分配策
略;
35.如果查找到与所述业务场景对应的目标内存分配策略,则按照与所述业务场景对应的目标内存分配策略,为所述多个功能模块分配内存。
36.本技术实施例预先存储不同业务场景所对应的目标内存分配策略,在进行内存分配时,在存储的目标内存分配策略中,查找与多个功能模块所在系统所属的业务场景对应的目标内存分配策略,按照查找到的目标内存分配策略,为多个功能模块分配内存,从而有针对性地为不同的业务场景准备不同的目标内存分配策略,提高了内存分配效率和效果。
37.第二方面,本技术的实施例提供一种内存分配装置,包括:
38.确定模块,用于确定待分配内存的多个功能模块,通过预测模型,确定目标内存分配策略,所述预测模型用于描述所述目标内存分配策略与系统性能之间的关系,所述目标内存分配策略用于指示为每个所述功能模块分配的内存配额;
39.分配模块,用于按照所述目标内存分配策略,为所述多个功能模块分配内存。
40.在第二方面的一种可能的实现方式中,所述装置还包括调整模块,所述调整模块用于:
41.获取初始模型;
42.根据所述初始模型,确定参考内存分配策略;
43.获取所述参考内存分配策略所对应的系统性能;
44.根据所述系统性能对所述初始模型进行一次或多次调整,以获取所述预测模型。
45.在第二方面的一种可能的实现方式中,所述预测模型满足预设条件。
46.在第二方面的一种可能的实现方式中,调整的次数不超过预设的次数阈值。
47.在第二方面的一种可能的实现方式中,所述预设条件包括:
48.所述预测模型所对应的系统性能超过预设的性能阈值。
49.在第二方面的一种可能的实现方式中,所述调整模块,具体用于:
50.根据所述初始模型,采用寻优算法确定参考内存分配策略。
51.在第二方面的一种可能的实现方式中,所述寻优算法为贝叶斯优化算法。
52.在第二方面的一种可能的实现方式中,所述初始模型符合高斯分布。
53.在第二方面的一种可能的实现方式中,所述系统性能包括如下一项或多项:系统每秒进行读写操作的次数、系统带宽。
54.在第二方面的一种可能的实现方式中,所述预测模型对应一种业务场景。
55.在第二方面的一种可能的实现方式中,所述装置还包括:
56.识别模块,用于识别所述多个功能模块所在系统所属的业务场景;
57.查找模块,用于在预先存储的目标内存分配策略中,查找与所述业务场景对应的目标内存分配策略;
58.所述分配模块,还用于:
59.如果查找到与所述业务场景对应的目标内存分配策略,则按照与所述业务场景对应的目标内存分配策略,为所述多个功能模块分配内存。
60.上述第二方面和第二方面的各可能的实现方式所提供的内存分配装置,其有益效果可以参见上述第一方面和第一方面的各可能的实现方式所带来的有益效果,在此不加赘述。
61.第三方面,本技术的实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行如第一方面所描述的方法。
62.第四方面,本技术的实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面所描述的方法。
63.第五方面,本技术的实施例提供一种电子设备,包括:
64.至少一个处理器;
65.与所述至少一个处理器通信连接的存储器;
66.其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使得如第一方面所描述的方法被执行。
67.第六方面,本技术实施例提供一种芯片,包括:
68.至少一个处理器;
69.与所述至少一个处理器通信连接的存储器;
70.其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使得如第一方面所描述的方法被执行。
附图说明
71.图1为本技术实施例适用的计算机设备的结构示意图;
72.图2为本技术实施例提供的相关技术中的内存分配方法的流程示例图;
73.图3为本技术的一实施例提供的内存分配方法的流程示意图;
74.图4为本技术的另一实施例提供的内存分配方法的流程示意图;
75.图5为本技术的另一实施例提供的内存分配方法的流程示意图;
76.图6为本技术的另一实施例提供的内存分配方法的流程示意图;
77.图7为本技术的一实施例提供的内存分配方法中初始模型迭代调整过程的示例图;
78.图8为本技术的另一实施例提供的内存分配方法的流程示意图;
79.图9为本技术的一实施例提供的内存分配装置的结构示意图;
80.图10为本技术的另一实施例提供的内存分配装置的结构示意图。
具体实施方式
81.本技术的实施例提供的内存分配方法,可以适用于如图1所示的计算机设备100。如图1所示,该计算机设备100包括存储器110和处理器120,存储器110包括内存111,除内存111外,存储器110还可以包括外存(即外部存储器,图1中未示出)。存储器110与处理器120通信连接。例如,存储器110和处理器120之间可以采用网络连接的方式,实现通信连接。或者,上述计算机设备100还可以包括总线130。存储器110与处理器120通过总线130实现彼此之间的通信连接。图1是以存储器110与处理器120通过总线130实现彼此之间的通信连接的计算机设备100。
82.存储器110可以是只读存储器(read only memory,rom)、静态存储设备、动态存储设备或者随机存取存储器(random access memory,ram)。计算机设备100上设置有多个功
能模块,例如多个应用程序、多个底层服务,这些功能模块在运行时占用计算机设备100的内存111。
83.存储器110还可以用来存储程序,当存储器110中存储的程序被处理器120执行时,处理器120用于执行为计算机设备100上的多个功能模块分配内存的内存分配方法。存储器110还可以存储预测模型、目标内存分配策略、与目标内存分配策略对应的系统性能等数据。
84.其中,内存111是连接处理器120和存储器110中的外存(例如硬盘)的通道,起数据缓冲和交换作用。处理器120工作时,需要从外存上读取数据,但由于外存访问速度较慢,影响系统性能。为解决这个问题,研发人员在计算机设备100的处理器120与外存之间设置内存111,内存111的访问速度快,可以将频繁被访问的数据存储在内存111中,有利于提高计算机设备100的系统性能。
85.处理器120可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路。
86.处理器120还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的内存分配方法可以通过处理器120中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器120还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术下文实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术下文实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器110的内存111中和/或位于存储器110的外存中,处理器120读取存储器110中的信息,结合其硬件完成本技术实施例的内存分配方法。
87.计算机设备100还可包括通信接口140,通信接口140使用例如但不限于收发器一类的收发模块,来实现计算机设备100与其他设备或通信网络之间的通信。例如,可以通过通信接口140将确定的目标内存分配策略发送给其它设备,以对其它设备进行内存分配。
88.在计算机设备100包括总线130时,总线130可包括在计算机设备100各个部件(例如,存储器110、处理器120、通信接口140)之间传送信息的通路。
89.在计算机设备100的操作系统加载时,通常需要对计算机设备100上的功能模块进行内存111的分配,在操作系统运行时,运行中的各个功能模块会在自身被分配的内存中进行内存占用。由于每个功能模块对计算机设备100的系统性能的影响不同,且不同的功能模块之间可能存在相互依赖关系,因此,每个功能模块被分配到多少内存配额,将直接影响到计算机设备100的系统性能。虽然在操作系统的运行过程中,可以通过内存111在功能模块之间流动,来动态调整功能模块所占用的内存,但这种动态调整无法否定每个功能模块初始被分配到的内存配额对计算机设备100的系统性能的影响。
90.相关技术中,如图2所示,对计算机设备100上的功能模块进行内存111的分配包括
下述步骤:s201、熟悉操作系统和存储业务的专业人士,手动确定各功能模块初始的内存配额;s202、在操作系统中导入确定的内存配额,测量操作系统的系统性能;s203、确定测量得到的系统性能是否满足预设目标(例如系统的运行速度大于速度阈值),若满足,则执行s204,否则执行s201,专业人士根据测量到的系统性能和个人经验,重新调整各功能模块的内存配额;s204、得到各个功能模块的最终内存配额,按照各个功能模块的最终内存配置,为各个功能模块分配内存。因此,通过专业人士多次手动调整功能模块的内存配额,直至操作系统的系统性能满足目标。
91.通过上述方式进行内存的分配,一是对专业人士的专业知识和实操经验要求较高,内存分配后的系统性能受限于专业人士的专业知识和实操经验,导致内存分配的人力成本较高且效果不稳定;二是由于不同的计算机设备存在差异,而且同一计算机设备的操作系统或者功能模块也可能发生变化,针对不同的计算机设备、或者针对同一计算机设备的操作系统或者功能模块发送变化的情况,都要重新手动调整各功能模块的内存配额,内存分配的效率不高。
92.本技术的实施例提供一种内存分配方法,应用于上述计算机设备。在该方法中,通过预测模型,确定目标内存分配策略,按照确定的内存分配策略,为多个功能模块分配内存,其中,预测模型用于描述目标内存分配策略与系统性能之间的关系,目标内存分配策略用于指示为每个功能模块分配的内存配额。因此,通过预测模型实现目标内存分配策略的确定,目标内存分配策略的优劣依赖于预测模型的优劣,而无需受限于专业人士的专业知识和实操经验,提高了内存分配效果的稳定性和内存分配效率,提高内存分配后的系统性能。
93.下面以具体地实施例对本技术的实施例的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例的实施例进行描述。
94.图3是本技术的一实施例提供的内存分配方法的流程图,该方法应用于如图1所示的计算机设备100,该方法的执行主体可以是计算机设备100中的处理器120,处理器120执行该方法,以实现向计算机设备100的操作系统上的多个功能模块分配内存111。如图3所示,该方法包括如下步骤:
95.s301、确定待分配内存的多个功能模块。
96.其中,功能模块未启动时位于计算机设备的外存中,功能模块启动后占用计算机设备的内存并运行。待分配内存的多个功能模块,是指计算机设备的操作系统中,需要从内存(比如图1中的内存111)中分配内存配额的多个功能模块。在完成内存分配后,启动的功能模块可按照被分配的内存配额进行内存占用。
97.其中,确定的等待分配内存的多个功能模块可包括如下的一项或多项:计算机设备的操作系统上安装的多个应用程序、计算机设备的操作系统上安装的多个底层服务。因此,可以对操作系统上的所有功能模块进行内存分配,也可以对操作系统上的部分功能模块进行内存分配。
98.本实施例中,确定等待分配内存的多个功能模块,并获取待分配的内存总额,等待分配内存的多个功能模块分配得到的内存配额之和,小于等于待分配的内存总额。例如,在
对操作系统上的所有功能模块进行内存分配时,待分配的内存总额可为操作系统的内存总大小,在对操作系统上的部分功能模块进行内存分配时,待分配的内存总额可由用户预先设定,比如设置操作系统的内存总大小的一半。
99.在一种可能的实现方式中,在确定等待分配内存的多个功能模块的过程中,可获取操作系统上所有的功能模块的数量和计算机设备的内存大小,以在计算机设备的内存大小的范围内,为操作系统上所有功能模块分配内存。
100.在另一种可能的实现方式中,在确定等待分配内存的多个功能模块的过程中,可获取用户指定的多个功能模块的模块信息和待分配的内存总额,以在待分配的内存总额的范围内,为用户指定的各个功能模块分配内存。例如,用户可在操作系统上选择待分配内存的多个功能模块和输入待分配的内存总额,功能模块的模块信息比如为功能模块的名称或者标识,以便通过功能模块的模块信息能够在操作系统中确定该功能模块。
101.在一种可能的实现方式中,在计算机设备的操作系统的加载过程中(例如在计算机设备开机过程中),确定待分配内存的多个功能模块。因此,利用计算机设备的操作系统的加载时功能模块通常未启动的特性,可以提前为功能模块分配好内存,提高操作系统加载后的系统性能。
102.在另一种可能的实现方式中,在接收到用户输入的内存分配请求后,确定待分配内存的多个功能模块,因此及时响应于用户的需求进行内存分配。其中,用户可以在计算机设备的操作系统的加载过程中,输入内存分配请求,也可以在计算机设备的操作系统加载结束后,输入内存分配请求。
103.如果在计算机设备的操作系统加载结束后接收到用户输入的内存分配请求,则可以提醒用户输入待分配内存的多个功能模块,通过执行后续操作,为用户输入的待分配内存的多个功能模块分配内存。
104.s302、通过预测模型,确定目标内存分配策略。
105.其中,针对确定的多个功能模块,目标内存分配策略用于指示为每个功能模块分配的内存配额,例如,目标内存分配策略的数据类型为数组,该数组中每个元素对应一个功能模块,元素的值为该元素所对应的功能模块分配到的内存配额。
106.其中,预测模型用于描述目标内存分配策略与系统性能之间的关系。由于操作系统的系统性能与各个功能模块的内存配额有直接关系,可以理解成在操作系统的其它参数不变的条件下,操作系统的系统性能是各个功能模块的内存配额的函数,该函数也是目标内存分配策略与系统性能之间的关系。
107.作为示例地,在操作系统上,共有n个等待分配内存的功能模块,各个功能模块的内存配额依次表示为x1,x2,...,xn,受待分配的内存总额的限制,其中,xi为第i个功能模块的内存配额,m为待分配的内存总额。因此,目标内存分配策略可以表示为(x1,x2,...,xn),操作系统的系统性能可以表示为f(x1,x2,...,xn),目标内存分配策略与系统性能之间的关系为函数f()。
108.本实施例中,通过预测模型来描述目标内存分配策略与系统性能之间的关系,并基于预测模型所描述的目标内存分配策略与系统性能之间的关系,找到一个目标内存分配策略,使得系统性能f(x1,x2,...,xn)的取值最大。因此,将内存分配问题转换为一个带约束
的最优化问题,约束条件为优化目标为求解f(x1,x2,...,xn)的最大值所对应的(x1,x2,...,xn)。
109.本实施例中,由于目标内存分配策略与系统性能之间的关系并不是显而易见的,且系统性能也可能发生波动,因此可设置多个目标内存分配策略、并在操作系统中测量每个目标内存分配策略下的系统性能,基于多个目标内存分配策略和各个目标内存分配策略对应的系统性能,对目标内存分配策略与系统性能之间的关系进行拟合,得到预测模型。基于得到的预测模型,在约束条件下,可得到最优的目标内存分配策略,该最优的目标内存分配策略所对应的系统性能最大。
110.可选的,预测模型为神经网络模型,预测模型的输入数据为目标内存分配策略,预测模型的输出数据为目标内存分配策略所对应的系统性能的预测值。在对目标内存分配策略与系统性能之间的关系进行拟合的过程中,对预测模型的模型参数进行调整,使得预测模型输出的系统性能的预测值尽可能的逼近系统性能的真实值,即使得预测模型尽可能逼近目标内存分配策略与系统性能之间的关系,以提高预测模型的模型效果,也即提高预测模型的模型准确性。在此,对预测模型的具体结构不做限定。
111.可选的,系统性能可包括如下一项或多项:系统每秒进行读写操作的次数、系统带宽。其中,系统每秒进行读写操作的次数(input/output operations per second,iops)反映操作系统的读写速度,系统带宽反映操作系统的数据传输能力。因此,通过预测模型进行目标内存分配策略的优化,使得按照目标内存分配策略为各个功能模块分配内存时操作系统的系统性能较大,也即确保系统每秒进行读写操作的次数较多和/或系统带宽较大。
112.s303、按照目标内存分配策略,为多个功能模块分配内存。
113.本实施例中,在得到目标内存分配策略后,可在操作系统中,按照目标内存分配策略,为确定的等待分配内存的多个功能模块分配内存,实现操作系统中多个功能模块的内存分配。
114.本实施例中,通过描述目标内存分配策略与系统性能之间关系的预测模型,确定目标内存分配策略,并按照目标内存分配策略,为多个功能模块分配内存,从而在不依赖专业人士手动调整内存分配的情况下,实现功能模块的内存分配,有效地提高了内存分配的效率和内存分配效果的稳定性。
115.在一些实施例中,如图4所示,s301、确定待分配内存的多个功能模块之后,s302、通过预测模型确定目标内存分配策略之前,还包括:
116.s3011、获取初始模型。
117.本实施例中,可先随机设置多个初始的内存分配策略,为便于区分,将用于获取初始模型的初始的内存分配策略,称为初始内存分配策略。依次按照各个随机设置的初始内存分配策略,在操作系统中为待分配内存的多个功能模块分配内存,测量操作系统的系统性能,进而得到各个随机设置的初始内存分配策略所对应的系统性能。
118.本实施例中,以各个随机设置的初始内存分配策略作为模型输入数据,以各个随机设置的初始内存分配策略所对应的系统性能作为模型输出数据的参考数据,进行模型初始化,得到初始模型,初始模型比如为初始化后的神经网络模型。
119.s3012、根据初始模型,确定参考内存分配策略,获取参考内存分配策略所对应的系统性能。
120.本实施例中,初始模型用于描述目标内存分配策略与系统性能之间的粗略关系,因此,可以根据初始模型所描述的目标内存分配策略与系统性能之间的粗略关系,确定约束条件下的最优的目标内存分配策略,即约束条件下最大的系统性能所对应的目标内存分配策略,为了便于区分,将中间过程得到的最优的目标内存分配策略称为参考内存分配策略。由于初始模型不够准确,参考内存分配策略可能存在偏差,因此需要对初始模型进行调整,以得到准确性更高的预测模型,进而得到最终的目标内存分配策略。
121.本实施例中,在操作系统中,按照参考内存分配策略,为待分配内存的多个功能模块分配内存,在内存分配后,测量操作系统的系统性能,得到参考内存分配测量所对应的系统性能。
122.s3013、根据系统性能对初始模型进行一次或多次调整,以获取预测模型。
123.本实施例中,以参考内存分配策略为输入数据,以测量得到的参考内存分配测量所对应的系统性能作为初始模型的输出数据的参考数据,对初始模型进行一次或多次调整,换句话说,对初始模型进行一次或多次的有监督训练,训练结束后得到预测模型。
124.本实施例中,通过随机采样进行模型初始化,得到初始模型,基于初始模型,确定参考内存分配策略,测量参考内存分配策略所对应的系统性能,基于参考内存分配策略和参考内存分配策略所对应的系统性能,对初始模型进行一次或多次调整,得到预测模型,有效地提高了预测模型的准确性。
125.在一些实施例中,如图5所示,s3013、根据系统性能对初始模型进行一次或多次调整,以获取预测模型,包括:
126.s3014、根据参考内存分配策略和与参考内存分配策略对应的系统性能,对初始模型进行第n次调整。
127.其中,n大于等于1。在n等于1时,初始模型为一开始获取的初始模型,参考内存分配策略是根据一开始获取的初始型确定的,在n大于1时,初始模型为第n-1次调整后的初始模型,参考内存分配策略是根据第n-1次调整后的初始模型确定的。因此,随着初始模型的调整次数的增加,初始模型的准确性逐渐增加,换句话说,初始模型越来越逼近目标内存分配策略与系统性能之间的关系,参考内存分配策略的准确性也越来越高,换句话说,每次获得的参考内存分配策略越来越逼近最终的目标内存分配策略。
128.s3015、第n次调整后的初始模型是否满足预设条件。
129.本实施例中,如果第n次调整后的初始模型满足预设条件,则执行s3016,得到最终的预测模型。否则,执行s3012,根据第n次调整后的初始模型,确定第n 1次调整中的参考内存分配策略,以根据第n 1次调整中的参考内存分配策略和第n 1次调整中的参考内存分配策略所对应的系统性能,对第n次调整后的初始模型进行第n 1次调整。因此,通过对初始模型进行一次或多次的迭代调整,提高预测模型的准确性和目标内存分配策略的准确性,进而提高内存分配效果。
130.s3016、获得预测模型。
131.本实施例中,如果第n次调整后的初始模型满足预设条件,则将第n次调整后的初始模型,确定为预测模型,因此预测模型也满足预设条件。
132.可选的,预设条件包括:初始模型的调整次数不超过预设的次数阈值。因此,s3015的一种可能的实现方式为:n是否大于次数阈值。如果n大于次数阈值,则说明初始模型的调
整次数超过次数阈值,执行s3016,否则执行s3012。因此,通过控制预测模型的调整次数,提高预测模型的获取效率,进而提高内存分配的效率,同时通过多次调整,确保了预测模型的准确性。
133.可选的,预设条件包括:预测模型所对应的系统性能超过预设的性能阈值。其中,预测模型所对应的系统性能超过预设的性能阈值,是指:根据第n次调整后的初始模型确定的参考内存分配策略所对应的系统性能超过预设的性能阈值。因此,s3015的另一种可能的实现方式为:根据第n次调整后的初始模型,确定参考内存分配策略,获取参考内存分配策略所对应的系统性能,确定参考内存分配策略所对应的系统性能是否超过预设的性能阈值。如果是,则执行s3016,此时s303的一种可能的实现方式为:将系统性能超过性能阈值的参考内存分配策略,确定为目标内存分配策略。如果不是,则执行s3014,以继续调整初始模型。
134.本实施例中,在根据第n次调整后的初始模型确定的参考内存分配策略所对应的系统性能超过预设的性能阈值时,直接停止对初始模型的迭代训练,得到预测模型,并将系统性能超过性能阈值的参考内存分配策略确定为目标内存分配策略,从而在对初始模型进行调整的过程中,同时实现目标内存分配策略的确定,提高了内存分配效率,确保了内存分配后的系统性能。
135.在对初始模型进行一次或多次调整,以获得预测模型后,在一些实施例中,如图6所示,s302、通过预测模型,确定目标内存分配策略,包括:
136.s3021、在初始模型的一次或多次调整获得的参考内存分配策略中,确定目标内存分配策略。
137.本实施例中,在对初始模型进行多次调整的过程中,初始模型的准确性逐渐提高,基于初始模型确定的参考内存分配策略,也越来越接近约束条件下的最优的目标内存分配策略。因此,对初始模型进行多次调整的过程,也可以看作是对参考内存分配策略的寻优过程,初始模型的准确性越高,基于初始模型确定的参考内存分配策略,也越接近约束条件下最优的目标内存分配策略。所以,在得到预测模型后,可获取初始模型一次或多次调整过程中的参考内存分配策略和这些参考内存分配策略所对应的系统性能。在所有参考内存分配策略中,将系统性能最大的参考内存分配策略,确定为目标内存分配策略。在预测模型的获取过程中,实现对参考内存分配策略的寻优,得到最终的目标内存分配策略,有效地提高了目标内存分配策略的合理性和生成效率。
138.在一些实施例中,s3012、根据初始模型,确定参考内存分配策略,包括:根据初始模型,采用寻优算法确定参考内存分配策略。
139.其中,寻优算法比如为梯度下降算法、粒子群算法。
140.本实施例中,在通过预测模型,将内存分配问题转换为一个带约束的最优化问题时,可基于每次调整过程中的初始模型,通过寻优算法,找到该最优化问题的最优解,该最优解可能是局部最优解,也可能是在约束条件下的全局最优解。这里的最优解指的是参考内存分配策略。
141.本实施例中,在初始模型的每次调整过程中,基于上一次调整的初始模型,通过寻优算法,确定参考内存分配策略,以尽可能使得当前调整过程中的参考内存分配策略优于上一次调整过程中的参考内存分配策略,使得随着初始模型的不断调整,参考内存分配策
略也越来越接近约束条件下最优的目标内存分配策略。因此,通过寻优算法确定参考内存分配策略,有效地提高了初始模型调整过程的收敛性,提高了内存分配效率和效果。
142.在一些实施例中,寻优算法为贝叶斯优化(bayesian optimization)算法。
143.本实施例中,在初始模型的调整过程中,参考内存分配策略影响初始模型的模型参数,在不同的参考内存分配策略下,初始模型的模型参数的调整不同,可见参考内存分配策略为超参数(hyperparameters)。贝叶斯优化算法可用于对超参数进行寻优,因此,可以利用贝叶斯优化算法,在初始模型下,对参考内存分配策略进行寻优,使得参考内存分配策略逐渐接近约束条件下最优的目标内存分配策略。
144.在一些实施例中,预测模型可采用贝叶斯模型。
145.本实施例中,贝叶斯模型又可称为贝叶斯预测模型,利用贝叶斯统计进行预测。通过贝叶斯模型能够拟合得到由目标内存分配策略和与目标内存分配策略所对应的系统性能构成的数据点的分布,因此,采用贝叶斯模型作为预测模型,能够准确地描述目标内存分配策略与系统性能之间的关系。
146.在一些实施例中,在获取初始模型时,获得的初始模型符合高斯分布。
147.本实施例中,高斯分布(gaussian distribution)又为正态分布(normal distribution)。在初始模型的获取过程中,由随机设置的多个初始内存分配策略和随机设置的多个初始内存分配策略所对应的系统性能构成多个数据点,每个数据点包括两个元素,一个元素为目标内存分配策略,另一个元素为目标内存分配策略所对应的系统性能。假设该多个数据点的分布为高斯分布,基于这些数据点进行高斯分布的拟合,得到符合高斯分布的初始模型。高斯分布运算简单,通过获得符合高斯分布的初始模型,能够提高预测模型和目标内存分配策略的生成效率,进而提高内存分配的效率。
148.在初始模型的一次或多次调整过程中,由参考内存分配策略和参考内存分配策略所对应的系统性能构成数据点,同样假设所有数据点的分布为高斯分布,初始模型的调整过程也是基于这些数据点进行高斯分布的拟合。
149.作为示例地,图7示出了通过对初始模型的多次调整,实现对目标内存分配策略与系统性能之间关系的拟合,图7中(a)、(b)、(c)依次表示初始模型的获取、初始模型的第一次调整、初始模型的第二次调整。
150.其中,表示4个数据点,这些数据点包括目标内存分配策略和内存分配策略所对应的系统性能,和中的目标内存分配策略为初始内存分配策略,和中的目标内存分配策略为参考内存分配策略。目标内存分配策略是个多维数据,因此数据点也是个多维数据,但为了便于描述,可以将数据点看作二维数据。数据点的横坐标为目标内存分配策略,数据点的纵坐标为与内存分配策略对应的系统性能。
151.其中,实线表示调整过程中初始模型所描述的目标内存分配策略与系统性能之间的关系,虚线表示目标内存分配策略与系统性能之间的真实关系,当然,要测量出这条虚线是很难的,图7这里的虚线只是作为示例。虚线和实线上的数据点符合高斯分布。
152.其中,置信空间表示系统性能的实际值相对于初始模型所预测的系统性能的波动范围,也即虚线相对于实线的一个波动范围。可以看出,随着迭代次数的增加,置信空间逐渐减小,说明初始模型的准确度逐渐增高。
153.如图7中的(a)所示,在模型初始化时,随机采样两个初始内存分配策略,在操作系
统中,测量得到这两个初始内存分配策略所对应的系统性能,进而得到两个数据点:和基于这两个数据点符合高斯分布,进行模型初始化,获得初始模型。
154.如图7中的(b)所示,在第一次调整过程中,基于初始模型,确定参考内存分配策略,并在操作系统中测量参考内存分配策略所对应的系统性能,由参考内存分配策略和参考内存分配策略所对应的系统性能构成数据点基于和符合高斯分布,对初始模型进行第一次调整。
155.如图7中的(c)所示,在第二次调整过程中,基于第一次调整的初始模型,确定参考内存分配策略,并在操作系统中测量参考内存分配策略所对应的系统性能,由参考内存分配策略和参考内存分配策略所对应的系统性能构成数据点基于和符合高斯分布,对第一次调整的初始模型进行第二次调整。依次循环,可对初始模型进行多次的迭代调整。
156.在一些实施例中,预测模型对应一种业务场景。
157.其中,业务场景比如为办公场景、游戏场景等,还可以进一步细分,比如为金融业务场景、程序开发场景。在不同的业务场景下,操作系统上的功能模块差异较大,在同一业务场景下,操作系统的功能模块差异较小。因此,不同的业务场景需要采用不同的目标内存分配策略,同一业务场景可以采用相同的目标内存分配策略。
158.本实施例中,在确定待分配的功能模块的过程中,可确定功能模块所在系统所属的业务场景,因此,后续获得的预测模型为针对该业务场景的预测模型,后续获得的目标内存分配策略为针对该业务场景的目标内存分配策略。因此,提高了预测模型和目标内存分配策略的针对性,并能够将预测模型和目标内存分配策略进行存储,以应用于属于同一业务场景的不同计算机设备,提高了内存分配的效率。
159.可选的,在确定待分配内存的功能模块所在系统所属的业务场景时,可获取用户输入的业务场景,也可以将待分配内存的功能模块与预先不同的业务场景下的功能模型进行比较,如果待分配内存的功能模块与某一业务场景下的功能模块的相似度超过预设的相似度阈值,则确定该某一业务场景为待分配内存的功能模块所在系统所属的业务场景。
160.图8是本技术的另一实施例提供的内存分配方法的流程图,应用于如图1所示的计算机设备100,该方法的执行主体可以是计算机设备100中从处理器120,处理器120执行该方法,以实现向计算机设备100的操作系统上的多个功能模块分配内存111。如图8所示,该方法包括:
161.s801、确定待分配内存的多个功能模块。
162.本实施例中,s801可以参照s301的描述,不再赘述。
163.s802、识别多个功能模块所在系统所属的业务场景。
164.本实施例中,可获取用户输入的业务场景,也可以将待分配内存的功能模块与预先不同的业务场景下的功能模型进行比较,如果待分配内存的功能模块与某一业务场景下的功能模块的相似度超过预设的相似度阈值,则确定该某一业务场景为待分配内存的功能模块所在系统所属的业务场景。
165.s803、在预先存储的目标内存分配策略中,查找是否存在与业务场景对应的目标内存分配策略。
166.本实施例中,预先存储有不同业务场景对应的目标内存分配策略。在预先存储的不同业务场景对应的目标内存分配策略中,以多个功能模块所在系统所属的业务场景为查询的关键字,查找是否存在与多个功能模块所在系统所属的业务场景对应的目标内存分配策略。如果不存在,则执行s804,否则,执行s806。
167.s804、通过预测模型,确定目标内存分配策略。
168.s805、按照通过预测模型确定的目标内存分配策略,为多个功能模块分配内存。
169.本实施例中,s804和s805可参照上述各实施例的描述,不再赘述。
170.s806、按照查找到的与业务场景对应的目标内存分配策略,为多个功能模块分配内存。
171.本实施例中,如果查找到与多个功能模块所在系统所属的业务场景对应的目标内存分配策略,则按照查找到的目标内存分配策略,为多个功能模块分配内存。
172.本实施例中,预先存储不同业务场景对应的目标内存分配策略,在为多个功能模块分配内存时,如果在预先存储的目标内存分配策略中,查找到与多个功能模块所在系统所属业务场景对应的目标内存分配策略,则直接按照查找到的目标内存分配策略,进行内存分配,否则通过预测模型确定多个功能模块的目标内存分配策略,从而通过业务场景匹配和目标内存分配策略查找,有效地提高了内存分配的效率。
173.本技术的一实施例提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行如上述任一实施例所描述的方法。
174.本技术的一实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一实施例所描述的方法。
175.图9为本技术的一实施例提供的内存分配装置的结构示意图。如图9所示,本实施例的内存分配装置可包括:确定模块901和分配模块902。
176.确定模块901,用于确定待分配内存的多个功能模块,通过预测模型,确定目标内存分配策略,预测模型用于描述目标内存分配策略与系统性能之间的关系,目标内存分配策略用于指示为每个功能模块分配的内存配额;
177.分配模块902,用于按照目标内存分配策略,为多个功能模块分配内存。
178.在一些实施例中,如图9所示,内存分配装置还包括调整模块903。
179.调整模块903,用于:获取初始模型;根据初始模型,确定参考内存分配策略;获取参考内存分配策略所对应的系统性能;根据系统性能对所述初始模型进行一次或多次调整,以获取预测模型。
180.在一些实施例中,预测模型满足预设条件。
181.在一些实施例中,调整的次数不超过预设的次数阈值。
182.在一些实施例中,预设条件包括:预测模型所对应的系统性能超过预设的性能阈值。
183.在一些实施例中,调整模块903,具体用于:
184.根据初始模型,采用寻优算法确定参考内存分配策略。
185.在一些实施例中,寻优算法为贝叶斯优化算法。
186.在一些实施例中,初始模型符合高斯分布。
187.在一些实施例中,系统性能包括如下一项或多项:系统每秒进行读写操作的次数、系统带宽。
188.在一些实施例中,预测模型对应一种业务场景。
189.在一些实施例中,如图10所示,内存分配装置还包括:
190.识别模块904,用于识别多个功能模块所在系统所属的业务场景;
191.查找模块905,用于在预先存储的目标内存分配策略中,查找与业务场景对应的目标内存分配策略;
192.分配模块902,还用于:
193.如果查找到与业务场景对应的目标内存分配策略,则按照与业务场景对应的目标内存分配策略,为多个功能模块分配内存。
194.本实施例以上所述的内存分配装置,可以用于执行上述任一方法实施例中的技术方案,其实现原理和技术效果类似,其中,各个模块的功能可以参考方法实施例中相应的描述,此处不再赘述。
195.需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本技术的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
196.所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
197.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献