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

函数内存分配方法、装置、计算机设备、存储介质和产品与流程

2022-07-23 08:26:57 来源:中国专利 TAG:


1.本技术涉及云计算技术领域,特别是涉及一种函数内存分配方法、装置、计算机设备、存储介质和产品。


背景技术:

2.进入云原生时代后,无服务器架构逐渐流行,企业和开发者纷纷开始探索无服务器架构,期望在适合的场景利用无服务器架构取代传统的后端服务架构,以达到为企业降本增效的目的。函数计算是无服务器架构中最常用的一种,函数计算是事件驱动的全托管计算服务,只需要将函数部署在函数计算平台上,当函数对应的事件被触发时函数被启动。因此利用函数计算实现对应的事件时,只需聚焦于业务逻辑的应用层开发,可以极大的为企业降本增效。
3.传统技术中,采用无服务器架构中的函数计算时,需要预先指定函数的内存大小,然后函数计算平台再运行函数。但是,预先指定的内存大小不一定是使运行性能最优的内存大小,因此可能会存在在预先指定的内存大小下运行函数时,占用平台资源过多或者函数运行性能过低的问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够确定函数最优内存大小的函数内存分配方法、装置、计算机设备、存储介质和产品。
5.第一方面,本技术提供了一种函数内存分配方法。所述方法包括:
6.获取目标函数在多个内存下的运行时间;其中,各内存的大小不同;
7.根据各内存的大小和目标函数在各内存下的运行时间,确定运行目标函数的最优内存大小;
8.根据最优内存大小为目标函数分配内存资源。
9.在其中一个实施例中,根据各内存的大小和目标函数在各内存下的运行时间,确定运行目标函数的最优内存大小,包括:
10.根据运行时间以及各内存的大小确定各内存对应的内存使用成本;
11.根据各内存对应的内存使用成本、大小和运行时间,确定目标函数的最优内存大小。
12.在其中一个实施例中,根据各内存对应的内存使用成本、大小和运行时间,确定目标函数的最优内存大小,包括:
13.对各内存,根据内存使用成本和多个内存使用成本的最小值确定内存对应的成本量化值;
14.对各内存,根据运行时间和多个运行时间的最小值确定内存对应的时间量化值;
15.根据预设的平衡因子、成本量化值以及时间量化值确定最优内存大小;平衡因子用于平衡内存使用成本和运行时间。
16.在其中一个实施例中,根据预设的平衡因子、成本量化值以及时间量化值确定最优内存大小,包括:
17.对各内存,根据平衡因子、成本量化值以及时间量化值,确定内存对应的总量化值;
18.根据多个内存的总量化值,确定最优内存大小。
19.在其中一个实施例中,获取目标函数在多个内存下的运行时间,包括:
20.获取目标函数对应的预设参数;预设参数包括多个内存的大小、用户级cpu时间、系统级cpu时间、文件系统读写次数、网络带宽和运行时间中的至少一种;
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.图1为一个实施例中函数内存分配方法的应用环境图;
49.图2为一个实施例中函数内存分配方法的流程示意图;
50.图3为一个实施例中根据各内存的大小和目标函数在各内存下的运行时间,确定运行目标函数的最优内存大小的方法的流程示意图;
51.图4为一个实施例中根据各内存对应的内存使用成本、大小和运行时间,确定目标函数的最优内存大小的方法的流程示意图;
52.图5为一个实施例中根据预设的平衡因子、成本量化值以及时间量化值确定最优内存大小的方法的流程示意图;
53.图6为一个实施例中获取目标函数在多个内存下的运行时间的方法的流程示意图;
54.图7为另一个实施例中函数内存分配方法的流程示意图;
55.图8为一个实施例中函数内存分配方法的流程示意图;
56.图9为一个实施例中函数内存分配方法的流程示意图;
57.图10为一个实施例中函数内存分配装置的结构框图;
58.图11为另一个实施例中函数内存分配装置的结构框图;
59.图12为一个实施例中计算机设备的内部结构图。
具体实施方式
60.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
61.进入云原生时代后,无服务器架构逐渐流行,企业和开发者纷纷开始探索无服务器架构,期望在适合的场景利用无服务器架构取代传统的后端服务架构,以达到为企业降本增效的目的。函数计算是无服务器架构中最常用的一种,函数计算是事件驱动的全托管计算服务,只需要将函数部署在函数计算平台上,当函数对应的事件被触发时函数被启动。因此利用函数计算实现对应的事件时,只需聚焦于业务逻辑的应用层开发,可以极大的为企业降本增效。
62.传统技术中,采用无服务器架构中的函数计算时,需要预先指定函数的内存大小,然后函数计算平台再运行函数。但是,预先指定的内存大小不一定是使运行性能最优的内存大小,因此可能会存在在预先指定的内存大小下运行函数时,占用平台资源过多或者函数运行性能过低的问题。
63.本技术实施例提供的函数内存分配方法,可以应用于如图1所示的应用环境中。上述函数内存分配方法可以应用于计算平台102中,该计算平台可以是函数计算平台、计算机设备、服务器、云计算平台、服务器等,计算平台为服务器时,可以是独立的服务器或者是多个服务器组成的服务器集群等,对于计算平台102的具体形式本技术在此不做限制。计算平台102可以获取目标函数在多个内存下的运行时间;根据各内存的大小和目标函数在各内存下的运行时间,确定运行目标函数的最优内存大小;根据最优内存大小为目标函数分配内存资源。
64.在一个实施例中,如图2所示,提供了一种函数内存分配方法,以该方法应用于图1中的应用环境为例进行说明,包括以下步骤:
65.s220,获取目标函数在多个内存下的运行时间。
66.其中,目标函数的各内存的大小不同。目标函数可以用于文件批量处理、业务数据合并、业务报表生成、市场投资回撤等业务中,当需要应用目标函数达成业务需求时,可以直接通过网络接口启动业务对应的目标函数,当然,也可以预先设置目标函数的启动条件,当满足启动条件时启动目标函数。运行时间即采用目标函数完成文件批量处理、业务数据合并、业务报表生成、市场投资回撤等业务所需要的时间。另外,目标函数的内存的大小可以是128mb,256mb,512mb,1024mb,2048mb。在实际应用中,目标函数的内存的大小也可以是其他值,本技术实施例对此不做限定。
67.可以预先在计算平台102中设置目标函数在多个内存下的运行时间的目标预测模型,随后根据目标预测模型对目标函数在多个内存下的运行时间进行预测,当然也可以预先在计算平台102设置运行时间的计算公式,通过公式获取目标函数在多个内存下的运行时间,本技术实施例在此不做限制。
68.s240,根据各内存的大小和目标函数在各内存下的运行时间,确定运行目标函数的最优内存大小。
69.其中,最优内存大小为使目标函数运行性能最优时的内存大小,在最优内存大小下运行目标函数时,目标函数占用的内存资源合理且函数运行性能较好。
70.可以预先在计算平台102中设置目标函数的最优内存大小的确定方法。例如,可以设置一系列的最优内存大小计算公式,也可以通过多个测试函数建立最优内存大小的预测
模型,当函数计算平台启动函数时,计算平台102自动通过最优内存大小计算公式或预测模型确定运行目标函数的最优内存大小。
71.s260,根据最优内存大小为目标函数分配内存资源。
72.在上述步骤中,已经确定了目标函数的最优内存大小,计算平台102可以根据该最优内存大小为目标函数重新分配内存资源,当然也可以由开发人员根据最优内存大小为目标函数重新分配内存资源。
73.上述函数内存分配方法,由于可以计算出目标函数在各内存下的对应的运行时间,然后根据各内存及各内存下的运行时间,就可以计算出最优内存大小,因此可以基于最优内存大小便捷的对目标函数的内存进行分配,正是由于该内存分配大小为最优的内存大小,因此也就避免了目标函数在不合适的内存大小下运行时出现占用平台资源过多或者函数运行性能过低的问题。
74.在一个实施例中,如图3所示,上述根据各内存的大小和目标函数在各内存下的运行时间,确定运行目标函数的最优内存大小的过程,可以包括如下步骤:
75.s242,根据运行时间以及各内存的大小确定各内存对应的内存使用成本。
76.其中,目标函数在不同内存下的内存使用成本不同,除了内存的大小外,内存使用成本还与目标函数在不同内存下的运行时间有关。内存使用成本的具体确定可以采用下述公式:
77.cost
mem
=exe_times
·
mem_size
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(1-1)
78.其中,exe_times为运行时间,mem_size为内存的大小。举例来说,针对同一个目标函数,假设内存的大小为128mb,此时内存使用成本为128m的内存大小与在128m内存下目标函数的运行时间的乘积,采用同样的方法可以计算出该目标函数在256mb、512mb等内存下的内存使用成本。
79.s244,根据各内存对应的内存使用成本、大小和运行时间,确定目标函数的最优内存大小。
80.在上面的步骤中,已经确定了各内存对应的内存使用成本,同时内存的大小和运行时间均为已知数据,此时计算平台102可以根据以上已知数据以及预设的函数内存分配方法,确定出最优内存大小。
81.上述实施例中,由于内存使用成本可以通过内存的大小和目标函数在不同内存下的运行时间得到,其中,内存使用成本的确定方法可以预先存储或设置于计算平台102中,因此可以比较容易且快速的得到各内存对应的内存使用成本。进一步的,各内存对应的内存使用成本、大小和运行时间均为已知数据,因此也能够高效且快速的确定目标函数的最优内存大小。
82.在一个实施例中,如图4所示,上述根据各内存对应的内存使用成本、大小和运行时间,确定目标函数的最优内存大小的过程,可以包括如下步骤:
83.s402,对各内存,根据内存使用成本和多个内存使用成本的最小值确定内存对应的成本量化值。
84.以内存的大小包括128mb,256mb,512mb,1024mb,2048mb这5种为例,内存对应的成本量化值可以通过内存使用成本和多个内存使用成本的最小值的比值确定,具体公式如下:
[0085][0086]
其中,m
x
为内存的大小,可以为128mb,256mb,512mb,1024mb,2048mb中的任意一个,s
cost
(m
x
)为成本量化值,cost
mem
(m
x
)为内存使用成本,mi为内存使用成本最小时对应的内存的大小。可以理解地,每一个内存都对应着一个内存使用成本,将每一个内存使用成本与多个内存使用成本中的最小值求比值,可以得到不同内存对应的成本量化值。
[0087]
s404,对各内存,根据运行时间和多个运行时间的最小值确定内存对应的时间量化值。
[0088]
内存对应的时间量化值可以通过运行时间和多个运行时间的最小值的比值确定,具体公式如下:
[0089][0090]
其中,m
x
为内存的大小,可以为128mb,256mb,512mb,1024mb,2048mb中的任意一个,s
perf
(m
x
)为时间量化值,exe_times(m
x
)为运行时间,mi为运行时间最小时对应的内存的大小。可以理解地,每一个内存都对应着一个运行时间,将每一个运行时间与多个运行时间的最小值求比值,可以得到不同内存对应的时间量化值。
[0091]
s406,根据预设的平衡因子、成本量化值以及时间量化值确定最优内存大小。
[0092]
其中,平衡因子用于平衡内存使用成本和运行时间,平衡因子的取值范围为0-1之间,平衡因子的设置可以根据实际情况设定。例如,若实际情况中运行目标函数时期望目标函数的运行时间较长,可以就将平衡因子的取值设置为0.5以上,若实际情况中运行目标函数时期望内存使用成本较低,可以将平衡因子的取值设置为0.5以下。
[0093]
平衡因子可以根据运行函数时的实际期望设定,成本量化值以及时间量化值通过上面的步骤可以确定出来,那么基于以上已知数据就可以确定最优内存大小,最优内存大小确定的方法可以预先设置在计算平台102中,需要确定最优内存大小时直接调取对应的方法方法来确定。
[0094]
上述实施例中,成本量化值以及时间量化值通过内存的大小、内存对应的运行时间即可计算得到,由于所涉及的数据比较少,且计算方法简单,因此确定成本量化值以及时间量化值的速率也能够极大的提高。
[0095]
在一个实施例中,如图5所示,上述根据预设的平衡因子、成本量化值以及时间量化值确定最优内存大小的过程,可以包括如下步骤:
[0096]
s502,对各内存,根据平衡因子、成本量化值以及时间量化值,确定内存对应的总量化值。
[0097]
内存对应的总量化值可以通过以下公式得到:
[0098]stotal
(m
x
)=t
·scost
(m
x
) (1-t)
·sperf
(m
x
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(1-4)
[0099]
其中,s
total
(m
x
)为内存对应的总量化值,t为平衡因子,针对于多个内存,根据该内存对应的成本量化值、时间量化值以及平衡因子,可以确定出多个内存对应的总量化值。
[0100]
s504,根据多个内存的总量化值,确定最优内存大小。
[0101]
由于内存的总量化值是通过平衡因子、成本量化值以及时间量化值确定出来的,因此计算出来的多个总量化值中的最小值即为最优内存大小,具体确定公式如下:
[0102][0103]
其中,optisize(m
x
)为最优内存大小,argmins
total
(m
x
)代表返回s
total
(m
x
)中的最小值。
[0104]
上述实施例中,由于平衡因子可以根据实际情况设定,平衡因子可以平衡内存使用成本和运行时间,因此能够更好的与实际业务需求匹配。同时由于是对各个内存下的总体评分都进行计算,进而再选取最小总体评分作为最优内存大小,因此考虑到了各个内存下的运行时间及内存使用成本,因此最终确定的最优内存成本比较准确。
[0105]
在一个实施例中,如图6所示,上述获取目标函数在多个内存下的运行时间的过程,可以包括如下步骤:
[0106]
s602,获取目标函数对应的预设参数。
[0107]
其中,预设参数包括多个内存的大小、用户级cpu时间、系统级cpu时间、文件系统读写次数、网络带宽和运行时间中的至少一种。用户级cpu时间是采用目标函数完成业务时在用户态的执行时间,系统级cpu时间指的是业务在内核态的执行时间。
[0108]
目标函数托管在云计算平台中,计算平台102可以读取目标函数并获取函数的预设参数,当然也可以将目标函数对应的预设参数提前设置于在计算平台102中,本技术实施例在此不做限制。
[0109]
s604,根据预设参数和目标预测模型,确定目标函数在各内存下的运行时间。
[0110]
可选的,目标预测模型包括线性回归函数,根据预设参数和目标预测模型,确定目标函数在各内存下的运行时间,可以包括:将预设参数代入到线性回归函数中,得到目标函数在各内存下的运行时间;线性回归函数中设置有预设参数对应的权重。
[0111]
具体的,目标预测模型可以用于预测目标函数在各内存下的运行时间,目标预测模型是与目标函数在各内存下的运行时间、预设参数以及预设参数对应的权重相关的线性回归函数。上述目标预测模型中的线性回归函数如下式:
[0112]
y=β0 β1x1 β2x2 ... β
p
x
p
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(1-6)
[0113]
其中,y为运行时间,x1,x2...x
p
为预设参数,β0为内存,β1,β2...β
p
为预设参数对应的权重。
[0114]
目标函数的预设参数可以提前获取,预设参数对应的权重也可以提前设置,那么将预设参数代入到线性回归函数中就可以计算出目标函数在各内存下的运行时间。
[0115]
在本实施例中,目标函数的预设参数和预设参数对应的权重可以在设置目标函数时提前设置,因此采用上述目标预测模型可以便捷的计算出目标函数在各内存下的运行时间。
[0116]
在一个实施例中,如图7所示,在根据预设参数和目标预测模型,确定目标函数在各内存下的运行时间之前,方法还包括:
[0117]
s702,建立多个测试函数,对测试函数的预设参数进行监测,得到监测数据集。
[0118]
其中,测试函数和目标函数用途一样,都是用于实现文件批量处理、业务数据合并、业务报表生成、市场投资回撤等业务,测试函数可以包括多个不同的目标函数,也可以
是由历史执行过的各类目标函数或其他函数构成。
[0119]
针对每一个测试函数,由于其使用的具体场景和业务不同,其预设参数可能也不同,可以通过计算平台102对测试函数的各个预设参数进行监测,并将监测到的测试函数的多个预设参数进行存储,保存成监测数据集。
[0120]
s704,基于监测数据集和初始预测模型进行回归运算,得到初始预测模型预测的第一运行时间。
[0121]
其中,初始预测模型设置有各预设参数对应的权重,初始预测模型是与测试函数在各内存下的运行时间、预设参数以及预设参数对应的权重相关的线性回归函数,初始预测模型与公式(1-6)相同。测试函数的内存大小和预设参数可以提前获取,而初始预测模型设置有各预设参数对应的权重,因此基于初始预测模型就可以预测出测试函数的第一运行时间。
[0122]
s706,根据测试函数实际的第二运行时间和第一运行时间,对各预设参数对应的权重进行调整。
[0123]
其中,第二运行时间为测试函数的实际运行时间。可以根据第一运行时间和第二运行时间进行拟合分析,从而确定测试函数的各预设参数对应的权重,当然也可以采用其他方法得到各预设参数对应的权重。
[0124]
可选的,对各预设参数对应的权重进行调整的方法,可以为确定第二运行时间以及第一运行时间的均方根误差最小时预设参数对应的目标权重,根据目标权重对各预设参数对应的权重进行调整。
[0125]
当第二运行时间以及第一运行时间的均方根误差最小时说明通过初始预测模型预测的的第一运行时间与测试函数实际的第二运行时间最接近,那么此时各预设参数对应的权重也是最准确的,各预设参数对应的权重可以通过下式确定:
[0126][0127]
其中,rss为均方根误差,yi为测试函数实际的第二运行时间,为第一运行时间。
[0128]
s708,根据调整后的权重和预设参数,确定目标预测模型。
[0129]
将均方根误差最小时的预设参数对应的目标权重输入至初始预测模型中,即可得到目标预测模型。
[0130]
上述实施例中,通过多个测试函数可以得到监测数据集,进一步的基于监测数据集准确地建立初始预测模型,再通过初始预测模型预测的第一运行时间和测试函数实际的第二运行时间可以准确地对初始预测模型中各预设参数对应的权重进行调整,最终基于调整后的预设参数对应的权重就可以得到目标预测模型,进而就可以准确的对目标函数以及测试函数的运行时间进行预测。其中,均方根误差代表预测的第一运行时间与第二运行时间的拟合程度,均方根误差越小,说明拟合程度越接近,通过均方根误差可以更直观地且更便捷地确定预设参数对应的权重。
[0131]
在一个实施例中,如图8所示,上述函数内存分配方法可以包括如下步骤:
[0132]
s802,建立多个测试函数,对测试函数的预设参数进行监测,得到监测数据集。
[0133]
s804,基于监测数据集和初始预测模型进行回归运算,得到初始预测模型预测的第一运行时间。
[0134]
其中,初始预测模型设置有各预设参数对应的权重。
[0135]
s806,确定第二运行时间以及第一运行时间的均方根误差最小时预设参数对应的目标权重,根据目标权重对各预设参数对应的权重进行调整。
[0136]
s808,根据调整后的权重和预设参数,确定目标预测模型。
[0137]
s810,获取目标函数对应的预设参数。
[0138]
其中,预设参数包括多个内存的大小、用户级cpu时间、系统级cpu时间、文件系统读写次数、网络带宽和运行时间中的至少一种。
[0139]
s812,将预设参数代入到线性回归函数中,得到目标函数在各内存下的运行时间。
[0140]
其中,目标预测模型包括线性回归函数;线性回归函数中设置有预设参数对应的权重。
[0141]
s814,根据运行时间以及各内存的大小确定各内存对应的内存使用成本。
[0142]
s816,对各内存,根据内存使用成本和多个内存使用成本的最小值确定内存对应的成本量化值。
[0143]
s818,对各内存,根据运行时间和多个运行时间的最小值确定内存对应的时间量化值。
[0144]
s820,对各内存,根据平衡因子、成本量化值以及时间量化值,确定内存对应的总量化值。
[0145]
s822,根据多个内存的总量化值,确定最优内存大小。
[0146]
s824,根据最优内存大小为目标函数分配内存资源。
[0147]
为便于理解,以图9中的流程图对函数内存分配方法进行简要介绍,首先计算平台102启动函数内存分配方法,随后对多个测试函数进行监测,得到监测数据集,并通过监测数据集训练并确定目标预测模型。接下来,计算平台102对目标函数进行监测,获取目标函数对应的预设参数,将预测参数输入至目标预测模型中,通过目标预测模型预测函数在各内存下的运行时间,最后再经过函数内存优化确定最优内存大小,进而计算平台102根据确定的最优内存大小进行函数内存分配。
[0148]
上述实施例中的函数内存分配方法,由于可以计算出目标函数在各内存下的对应的运行时间,然后根据各内存及各内存下的运行时间,可以计算出最优内存大小,因此可以基于最优内存大小对目标函数的内存进行分配。正是由于该内存分配大小为最优内存大小,因此也就避免了目标函数在不合适的内存大小下运行时出现占用平台资源过多或者函数运行性能过低的问题。同时,由于内存使用成本、成本量化值以及时间量化值通过内存的大小、内存对应的运行时间即可计算得到,由于所涉及的数据比较少且计算方法简单,因此确定内存使用成本、成本量化值以及时间量化值的速率也能够极大的提高。在确定最优内存大小时,平衡因子可以平衡内存使用成本和运行时间,因此基于平衡因子确定的最优内存大小可以保证在该最优内存大小下运行目标函数时,目标函数的内存使用成本和运行时间比较平衡,进而目标函数的运行性能也会更优。因此,采用上述内存分配方法能够高效且准确地确定出最优内存大小,避免了在不合适的内存大小下运行函数时可能出现的占用内存资源过多或函数运行性能低的问题。
[0149]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有
明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0150]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的函数内存分配方法的函数内存分配装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个函数内存分配装置实施例中的具体限定可以参见上文中对于函数内存分配方法的限定,在此不再赘述。
[0151]
在一个实施例中,如图10所示,提供了一种函数内存分配装置1000,包括:第一时间获取模块1100、内存确定模块1200和内存分配模块1300,其中:
[0152]
第一时间获取模块1100,用于获取目标函数在多个内存下的运行时间;其中,各内存的大小不同;
[0153]
内存确定模块1200,用于根据各内存的大小和目标函数在各内存下的运行时间,确定运行目标函数的最优内存大小;
[0154]
内存分配模块1300,用于根据最优内存大小为目标函数分配内存资源。
[0155]
在另一个实施例提供的函数内存分配装置中,内存确定模块1200还包括:
[0156]
内存使用成本确定单元,用于根据运行时间以及各内存的大小确定各内存对应的内存使用成本;
[0157]
最优内存大小确定单元,用于根据各内存对应的内存使用成本、大小和运行时间,确定目标函数的最优内存大小。
[0158]
在另一个实施例提供的函数内存分配装置中,最优内存大小确定单元包括:
[0159]
成本量化值确定子单元,用于对各内存,根据内存使用成本和多个内存使用成本的最小值确定内存对应的成本量化值;
[0160]
时间量化值确定子单元,用于对各内存,根据运行时间和多个运行时间的最小值确定内存对应的时间量化值;
[0161]
最优内存大小确定子单元,用于根据预设的平衡因子、成本量化值以及时间量化值确定最优内存大小;平衡因子用于平衡内存使用成本和运行时间;
[0162]
可选的,最优内存大小确定子单元,还用于对各内存,根据平衡因子、成本量化值以及时间量化值,确定内存对应的总量化值;根据多个内存的总量化值,确定最优内存大小。
[0163]
在另一个实施例提供的函数内存分配装置中,第一时间获取模块1100包括:
[0164]
预设参数获取单元,用于获取目标函数对应的预设参数;预设参数包括多个内存的大小、用户级cpu时间、系统级cpu时间、文件系统读写次数、网络带宽和运行时间中的至少一种;
[0165]
运行时间确定单元,根据预设参数和目标预测模型,确定目标函数在各内存下的运行时间。
[0166]
可选的,目标预测模型包括线性回归函数,上述运行时间确定单元,具体用于将预设参数代入到线性回归函数中,得到目标函数在各内存下的运行时间;线性回归函数中设
memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0180]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0181]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献