本技术涉及计算机领域,尤其涉及一种程序运行方法、装置及相关设备。
背景技术:
1、服务器的配置参数和程序自身的配置参数对程序运行时的运行状态有着较大的影响。举例来说,服务器的处理器芯片中寄存器配置参数的不同,对预取程序的性能产生不同的影响,再举例来说,关系型数据库管理系统(mysql)中程序自身包括的应用参数不同,对数据库的读写性能产生不同的影响。因此,通过确定程序运行的最优配置参数,可以提高程序的运行性能。
2、但是,程序运行过程中的运行状态是动态变化的,不同的运行状态下,程序所需要的最优配置参数也不同,因此一段程序运行时所需的最优配置参数也是动态变化的。比如网卡负载消息包的大小、网络通信模式等运行状态发生改变时,网卡需要不同的最优配置参数。因此,如何确定程序运行时所需的动态最优配置参数是一个亟待解决的问题。
技术实现思路
1、本技术提供了一种程序运行方法、装置及相关设备,用于解决如何确定程序运行时所需的动态最优配置参数的问题。
2、第一方面,提供了一种程序运行方法,该方法包括以下步骤:根据程序运行时的运行状态特征将程序划分为多个程序片段并确定每个程序片段的第一运行性能,根据每个程序片段的运行状态特征,将多个程序片段进行聚类,确定每个程序片段对应的类别,基于每个程序片段对应的类别及第一运行性能,确定运行每个类别的程序片段的配置信息,采用每个类别的程序片段的配置信息运行程序中对应类别的程序片段。
3、可选地,运行状态特征可以是根据程序的代码确定的,比如运行状态特征可以是程序310的基本块向量代码向量(basic block vector,bbv)。
4、可选地,运行状态特征还可以是根据程序运行时的多个运行状态参数确定的。这里的运行状态参数可以包括能够表现程序运行时状态的一些运行状态参数,该运行状态参数可包括但不限于以下参数中的一种或者多种:cpu使用率、内存占用率、实时输入输出(input/output,io)带宽、网络吞吐、缓存缺失(cache miss)、缓存命中(cache hit)、实时浮点速度(flops)、cpu数据化率、cpu执行每条指令所需时钟周期(clock cycle perinstruction,cpi)、实时内存带宽(memory bandwidth)、实时网络带宽、数据包的大小等等,还可包括其他对应用性能有一定影响的参数,在一些实施例中,上述运行状态参数还可包括业务相关的参数,本技术不作具体限定。
5、实施第一方面描述的方法,根据程序运行时的运行状态特征将程序划分为多个程序片段,然后再将多个程序片段进行聚类,相同类别程序片段可以划分为同一个类别,然后分别确定每个类别的程序片段的配置信息,从而获得程序运行时所需的动态配置参数,解决如何确定程序运行时所需的动态最优配置参数的问题。
6、在一可能的实现方式中,可以根据运行状态特征的周期将程序划分为多个程序片段,其中,一个程序片段的运行状态特征是该程序的运行状态特征中的一个周期的运行状态特征。
7、实施上述实现方式,以运行状态特征的周期为粒度对程序进行切分,确定每个程序片段对应的配置之后,不会出现很短的运行时间内服务器需要反复修改配置参数这一情况的发生,进而解决了配置生效时间长、系统开销过大等问题。
8、在一可能的实现方式中,将每个程序片段的类别和第一运行性能输入配置推荐模型,获得每个类别的程序片段对应的配置信息,其中,配置推荐模型包括多个子模型,多个子模型中的每个子模型用于获得一种类别的程序片段对应的配置信息。
9、其中,配置信息可以是程序运行装置300所在的计算设备、终端设备、网络设备或者芯片的硬件配置,比如cpu寄存器配置参数、网卡的配置参数等等,配置信息还可以是程序的配置参数,比如mysql的程序中的应用参数,具体可根据程序的应用环境决定,本技术不作具体限定。
10、可选地,输入配置推荐模型的运行性能可包括用于描述程序运行后运行效果好坏的性能参数,比如程序的启动时间、内存分配、执行时间、磁盘吞吐量、cpu时间、负载承受能力等等,其中,启动时间指的是程序启动到正常处理业务需要花费的时间,内存分配指的是程序运行时程序运行装置所在的计算设备的内存分配是否合理,是否消耗过多的内存、是否存在内存泄漏等等,执行时间指的是程序从开始执行到运行结束所需的时间,磁盘吞吐量指的是i/o的使用情况,cpu时间指的是运行程序时线程占用cpu的时间,负载承受能力指的是当系统压力上升时,程序的执行速度、响应时间曲线是否会剧烈抖动等等,应理解,性能参数的举例用于说明,本技术不作具体限定。
11、需要说明的,程序的周期信息是根据运行状态特征确定的,参考前述内容可知,运行状态特征可以是根据程序本身(比如bbv)确定的,也可以是根据程序的运行状态参数确认的,这里的运行状态参数用于描述程序的运行状态,与性能参数存在一定的差别。举例来说,运行状态特征是根据cpu使用率、内存占用率、缓存缺失(cache miss)、缓存命中(cachehit)等运行状态参数确定的,运行性能是根据程序的运行时间、负载承受能力等性能参数确定的,上述举例用于说明,本技术不作具体限定。
12、可选地,输入配置推荐模型的每个程序片段的类别可以包括每个程序片段对应的指令区间、每个指令区间对应的类别等等,比如第1~第100个指令为程序片段1,第101~第150个指令为程序片段2,程序片段1的类别为类别1,程序片段2的类别为类别2,那么上述程序片段的类别可以包括指令区间[1,100]和类别1之间的对应关系,指令区间[2,150]和类别2之间的对应关系。应理解,上述举例用于说明,上述每个程序片段的类别还可以用其他方式实现,比如每个程序片段用标签来代替,第1~第100个指令对应标签1和类别1,本技术不作具体限定。
13、具体实现中,上述每个程序片段对应的指令区间可以通过指令监测和周期检测实现,通过监测程序对当前运行的指令个数,通过周期检测确定每个程序片段的起始指令和终止指令,从而确定每个程序片段对应的指令区间,该方式简单快捷,不需要将程序片段发送给服务端,减少通信量,提高通信效率,进而提高配置信息的获取效率。
14、需要说明的,配置推荐模型的输入数据还可包括更多内容,比如配置推荐模型的输入数据还可包括程序的周期信息、每种类别的多个程序片段的数量、每个程序片段本身等,具体可根据实际的应用场景决定输入数据的类型,本技术不作具体限定。
15、实施上述实现方式,由于相同类别的程序片段其运行状态特征十分类似,每一类程序片段运行时所需的最优配置信息也类似,因此一个子模型可以针对一种类别的程序片段进行配置信息推荐,这样针对性处理程序片段的配置信息推荐,可以提高程序的配置信息获取效率。将不同类别的程序片段输入不同的子模型,可以使得程序运行时的运行特征变化较多时,也能够获得最优的配置信息,使得本技术提供的程序运行系统能够适用于更多种类、更加复杂的应用场景,提高方案的普适性;同时,该种实现方式不需要将每个程序片段转化为可执行程序片段,服务端也不需要分开运行每个程序片段,更不需要保留上下文行为,可以提高配置信息获取效率。
16、在一可能的实现方式中,多个子模型中的第一子模型根据输入的第一类别的n个程序片段和第一运行性能,并行推荐并记录第一类别的n个程序片段对应的多个备选配置,从多个备选配置中确定第一类别的程序片段的配置信息,其中,一个程序片段对应一个备选配置,第一子模型为多个子模型中的任意一个子模型。
17、进一步地,每次程序运行获得新的运行性能的过程可以称为一次迭代,第一类别的程序片段的配置信息可以是根据多次迭代生成的多个备选配置确定的。迭代次数可通过限制迭代次数或者限制预设条件的方式实现。
18、可选地,通过限制迭代次数的方式确定多个备选配置的方法可以如下:多个子模型中的第一子模型根据输入的第一类别的n个程序片段和n个第一运行性能得到第一组备选配置,第一组备选配置包括n个程序片段对应的n个备选配置,运行程序,第一类别的n个程序片段分别使用对应的备选配置,程序运行完成,确定n个程序片段分别对应的第二运行性能,将第一类别及第二运行性能数据输入推荐模型,使第一子模型推荐n个备选配置,如此迭代执行m次,共得到n×m个备选配置。
19、举例来说,m=100,即限制迭代次数为100次,那么在第100次迭代完成后,可根据第1~第100次迭代获得的第一备选配置,确定第一类别的程序片段对应的配置信息,如果未迭代100次时,比如第50次迭代时,可以将最新的第一组备选配置发送给程序运行装置,程序运行装置使用最新的第一组备选配置运行程序,获得最新的运行性能,并将其发送给服务端进行下一次迭代。
20、可选地,通过限制预设条件的方式确定多个备选配置的方法可以如下:多个子模型中的第一子模型根据输入的第一类别的n个程序片段和n个第一运行性能得到第一组备选配置,第一组备选配置包括n个程序片段对应的n个备选配置,运行程序,第一类别的n个程序片段分别使用对应的备选配置,程序运行完成,确定程序的运行性能是否符合预设条件,如果不符合,则获取n个程序片段分别对应的第二运行性能,将第一类别及第二运行性能数据输入推荐模型,使第一子模型推荐n个备选配置,当程序运行m次后,程序的运行性能符合预设条件时,则配置推荐模型停止训练,则得到n×m个备选配置。
21、具体实现中,上述预设条件可以是最新的运行性能相比之前迭代获得的运行性能,不再有提升时迭代停止,也就是说,如果最新获得的运行性能高于之前迭代的运行性能时,可以继续进行下一轮迭代,也就是将最新获得的运行性能输入配置推荐模型,获得最新的第一备选配置,以此类推;如果最新获得的运行性能不高于之前迭代的运行性能,或者最新获得的运行性能与最近几轮迭代获得的运行性能相同,那么可以停止迭代,根据之前每一次迭代获得的第一备选配置和对应的运行性能,确定第一类别的程序片段最适合的配置信息。
22、应理解,上述预设条件用于举例说明,在不同的应用场景下可以根据业务需求设定更多类型的预设条件,这里不一一举例说明。
23、具体实现中,可以根据之前每次迭代获得的备选配置以及使用该组备选配置运行程序获得的运行性能,确定该第一类别的程序片段对应的配置信息。举例来说,假设限制迭代次数为100次,在第100次确定备选配置之后,将第100次确定的备选配置发送给程序运行装置获得第100次运行对应的运行性能后,可以根据100次迭代获得的100组备选配置以及对应的100个运行性能,确定该类程序片段对应的最佳的配置信息。
24、可以理解的,子模型作为一个并行优化模型,可以同时生成第一类别的多个程序片段的多个备选配置,其中一个程序片段对应一个备选配置,相当于对该种类别的程序片段同时推荐了多种配置,使用该备选配置运行程序时,可以同时获得该种类别的程序片段对应的多种性能,从而提高获得该种类别的程序片段的最优配置的速度。
25、需要说明的,程序运行装置在使用备选配置运行程序时,也可以通过指令监测确定当前运行的指令数,通过周期检测确定程序片段的起始点和终止点,从而获知每个指令片段对应的指令区间和备选配置,从而实现不同程序片段使用不同备选配置运行程序的目的,该方式简单快捷,不需要将程序片段发送给服务端,使得服务端、程序运行装置之间的通信量减少,提高通信效率,进而提高配置信息的获取效率。
26、可选地,上述多个子模型可以是并行贝叶斯(bayes principle)模型、马尔科夫链(markov chain,mc)并行模型、蒙特卡罗算法(monte carlo method)并行模型等,本技术不作具体限定。
27、实施上述实现方式,使得每个类别的子模型在确定该类别的程序片段的配置信息时,每一次迭代都可以同时推荐多个备选配置,这里备选配置的数量与该类别下的程序片段数量对应,多次迭代之后,根据多次迭代获得的多个备选配置确定最终的配置信息,相比于一次只推荐一个备选配置的模型,该方法可以提高模型获得最终配置信息的推荐速度,进而提高最终获取的最佳的配置信息的获取速度。
28、在一可能的实现方式中,获取程序运行时的运行状态特征,将运行状态特征切分为多个子片段,其中,不同的子片段的运行状态特征的相似度低于阈值,确定多个子片段中每个子片段的运行状态特征的周期信息,从而确定程序运行时的运行状态特征的周期信息,根据程序运行时的运行状态特征的周期信息,将程序划分为多个程序片段。该周期信息可包括但不限于运行状态特征所包括的周期数量、每个周期的起始点和终止点、每个周期的长度等信息。
29、可选地,将运行状态特征切分为多个子片段所使用的切分算法可包括但不限于变点(change point)检测、累积和(cumulative sum control,cusum)控制图方法等等,本技术不作具体限定,其中,change point指的是在一个序列或者函数中,当某个统计特性(比如分布类型、分布参数或者函数值)在某时间点受系统性因素而非偶然因素影响发生变化,该时间点即为change point。通常可利用统计量或统计方法或机器学习算法来确定序列或者函数中的change point;cusum控制图方法可累积数据之间的偏差,以此确定数据分布是否发生了变化。应理解,上述切分算法用于举例说明,本技术还可通过其他切分算法来将程序的运行状态特征切分为多个子片段,这里不一一举例说明。
30、进一步地,可以基于小波变换算法,将每个子片段分解为多个小波序列,其中,不同的小波序列对应不同的频率区间,通过傅里叶变换算法确定多个小波序列中每个小波序列的候选周期长度,根据候选周期长度确定小波序列中的多个自相关系数,根据小波序列中的多个自相关系数确定小波序列的周期长度值,根据小波序列的多个自相关系数和周期长度值确定每个子片段的周期长度值,获得程序运行时的运行状态特征的周期信息。
31、需要说明的,如果运行状态特征中的部分时段的特征不存在周期变化,那么可以将该部分不存在周期变化的时段单独作为一个周期,比如运行状态特征中时间0-t1时段包括10个重复周期片段a,时间t1-t2包括2个重复的周期片段b,但是在时间t2-t3内没有重复的片段,那么t2-t3这段时间可以确定为1个周期片段c,这样,该运行状态特征可包括10个重复的周期片段1,2个重复的周期片段b,1个不重复的周期片段c。应理解,上述举例用于说明,本技术不作具体限定。
32、下面对如何确定运行状态特征的周期信息进行解释说明。
33、首先,可以先将程序的运行状态特征切分为m个不同特征的子片段(t1,t2,t3,…,tm)。比如通过change point检测实现上述切分,对每个子片段进行数据预处理,获得预处理后的m个不同特征的子片段。
34、具体实现中,数据预处理可以包括提取并剔除趋势项∏i,具体可通过滤波器(filter)剔除趋势项,比如hp滤波器(hodrick-prescott trend filtering),本技术不作具体限定。数据预处理还可包括填充离群点,具体可通过箱体模型检测离群点,然后使用平均值对离群点进行填充,从而提高周期检测的准确度。应理解,上述预处理过程用于举例说明,还可以通过其他预处理方法对每个子片段进行数据预处理,比如降噪、滤波等其他能够提高周期检测的准确度的方法,这里不一一举例说明。
35、其次,基于小波变换算法,将每个子片段分解为j个不同频率区间下的小波序列(level),确定每个level中的候选周期长度,其中,候选周期数量指的是每个level中可能存在的周期个数,候选周期长度为该level中可能存在的周期长度。每个level中的候选周期数量可以是一个或者多个。可利用离散傅里叶变换和fisher检验确定每个level中的候选周期长度和候选周期数量。
36、应理解,由于不同level对应的频率区间不同,因此不同level所包含的周期数量不同,使用小波变换算法可以提取出每个子片段中的不同层次(也就是不同频率区间)的周期特征,然后对不同层次的周期特征进行强弱排序,将最强的周期特征作为小波变换分解level对应的候选周期长度值,最后根据每个level的候选周期长度值以及level之间的自相关系数,确定每个子片段所包含的周期数量和每个周期的周期长度。
37、具体实现中,每个level对应的频率区间可以是逐渐密集的,比如子片段1倍分解为8个level(level1~level8),level1的频率区间内的采集间隔最短,采集频率最密集,level8的频率区间内的采集间隔最长,采集频率最稀疏,应理解,上述举例用于说明,本技术不作具体限定。
38、接着,根据每个level中的候选周期长度,计算每个level的多个自相关系数,进而确定每个level对应的周期长度值。
39、具体实现中,可以对每个level执行以下步骤:根据候选周期数量将每个level划分为多个采集片段,其中,一个采集片段的长度可以是一个候选周期长度。举例来说,一个level包括400个采集点,level1的候选周期数量为4,候选周期长度为100之后,那么前100个采集点可以是采集片段1,第101~第200个采集点是采集片段2,第201~第300个采集点为采集片段3,第301~第400个采集点是采集片段4,然后计算采集片段1和采集片段2的自相关系数z12,采集片段1和采集片段3的自相关系数z13,以此类推,获得该level1的多个自相关系数。
40、可选地,可以将多个自相关系数进行排序,确定自相关系数的最大值对应的两个采集片段,根据两个采集片段的起始点和终止点,确定该level对应的周期长度。应理解,两个采集片段的自相关系数越大表示这两个采集片段的相关性越强,这两个采集片段是同一个周期的可能性越高。因此通过自相关系数排序,可以确定每个level对应的周期长度值。
41、最后,根据每个level的多个自相关系数和每个level对应的周期长度值,确定每个子片段对应的周期长度值,从而获得程序的运行状态特征的周期信息。
42、具体实现中,可以对每个子片段执行以下步骤:根据每个level的多个自相关系数确定每个level的评估值,根据评估值的大小确定目标level,根据目标level的周期长度值确定子片段的周期长度值。
43、可选地,确定每个level的评估值之后,可以对评估值不小于阈值的level进行排序,根据排序结果确定目标level,从而确定子片段的周期长度,其中,子片段的周期长度即为目标level的周期长度。应理解,评估值小于阈值时,表示该评估值对应的level不存在周期特征,因此可以不对评估值小于阈值的level进行排序,提高周期确定的效率。评估值越大,表示该level存在该子片段的周期项的可能性越高,因此可以将评估值最大的level的周期长度作为子片段的周期长度。
44、应理解,上述结合小波变换和自相关系数算法的周期检测算法是一种示例性的实现方式,本技术还可通过其他周期检测算法确定每个子片段的周期信息。举例来说,周期检测算法还可以是周期图(periodogram)算法,该方法是一种信号功率谱密度估计方法,对观测到的数据进行傅里叶变换,确定函数的功率谱,将时域信号转换到频域,通过频谱分析找出信号频谱的变化规律,从而确定函数的周期。具体可结合实际的业务场景选择合适的周期检测算法,这里不一一举例说明。
45、上述实现方式中,以周期为粒度对程序进行切分,每个程序片段对应一个运行状态特征的周期,因此每个程序片段的长度较长,这样确定每个程序片段对应的配置时,也是按照周期分配了配置,从而避免了很短的运行时间内服务器需要反复修改配置参数这一情况的发生,进而解决了配置生效时间长、系统开销过大等问题;同时,程序的运行状态特征无论是离散型还是连续型的特征,都存在一定的周期性,都可以通过周期信息将程序进行切分,使得本技术提供的程序运行系统不仅适用于离散型运行状态特征的程序,也适用于连续型运行状态特征的程序,方案的适用场景更加广泛。
46、第二方面,提供了一种程序运行装置,该装置包括:程序划分单元,用于根据程序运行时的运行状态特征将程序划分为多个程序片段并确定每个程序片段的第一运行性能;聚类单元,用于根据每个程序片段的运行状态特征,将多个程序片段进行聚类,确定每个程序片段对应的类别;配置优化单元,用于基于每个程序片段对应的类别及第一运行性能,确定运行每个类别的程序片段的配置信息;运行单元,用于采用每个类别的程序片段的配置信息运行程序中对应类别的程序片段。
47、实施第二方面描述的方法,根据程序运行时的运行状态特征将程序划分为多个程序片段,然后再将多个程序片段进行聚类,相同类别程序片段可以划分为同一个类别,然后分别确定每个类别的程序片段的配置信息,从而获得程序运行时所需的动态配置参数,解决如何确定程序运行时所需的动态最优配置参数的问题。
48、在一可能的实现方式中,配置优化单元,用于将每个程序片段的类别和第一运行性能输入配置推荐模型,获得每个类别的程序片段对应的配置信息,其中,配置推荐模型包括多个子模型,多个子模型中的每个子模型用于获得一种类别的程序片段对应的配置信息。
49、在一可能的实现方式中,每个子模型是并行优化模型,配置优化单元,用于通过多个子模型中的第一子模型根据输入的第一类别的n个程序片段和第一运行性能,并行推荐并记录第一类别的n个程序片段对应的多个备选配置,从多个备选配置中确定第一类别的程序片段的配置信息,其中,一个程序片段对应一个备选配置,第一子模型为多个子模型中的任意一个子模型。
50、在一可能的实现方式中,配置优化单元,用于通过多个子模型中的第一子模型根据输入的第一类别的n个程序片段和n个第一运行性能得到第一组备选配置,第一组备选配置包括n个程序片段对应的n个备选配置;运行单元,用于运行程序,第一类别的n个程序片段分别使用对应的备选配置;配置优化单元,用于程序运行完成,确定n个程序片段分别对应的第二运行性能;配置优化单元,用于将第一类别及第二运行性能数据输入推荐模型,使第一子模型推荐n个备选配置,如此迭代执行m次,共得到n×m个备选配置。
51、在一可能的实现方式中,配置优化单元,用于通过多个子模型中的第一子模型根据输入的第一类别的n个程序片段和n个第一运行性能得到第一组备选配置,第一组备选配置包括n个程序片段对应的n个备选配置;运行程序,第一类别的n个程序片段分别使用对应的备选配置;配置优化单元,用于程序运行完成,确定程序的运行性能是否符合预设条件,如果不符合,则获取n个程序片段分别对应的第二运行性能;配置优化单元,用于将第一类别及第二运行性能数据输入推荐模型,使第一子模型推荐n个备选配置;配置优化单元,用于当程序运行m次后,程序的运行性能符合预设条件时,则配置推荐模型停止训练,则得到n×m个备选配置。
52、在一可能的实现方式中,装置还包括周期获取单元,周期获取单元,用于获取程序运行时的运行状态特征;周期获取单元,用于将运行状态特征切分为多个子片段,其中,不同的子片段的运行状态特征的相似度低于阈值;周期获取单元,用于确定多个子片段中每个子片段的运行状态特征的周期信息,从而确定程序运行时的运行状态特征的周期信息;程序划分单元,用于根据程序运行时的运行状态特征的周期信息,将程序划分为多个程序片段。
53、第三方面,提供了一种计算设备,包括处理器和存储器,存储器用于存储代码,处理器用于执行代码使得计算设备实现如第一方面描述的方法。
54、第四方面,提供了一种计算机可读存储介质,包括指令,当指令在计算机上运行时,计算机实现如第一方面描述的方法。
55、第五方面,提供了一种程序运行系统,包括服务端和程序运行装置,程序运行装置用于实现如第一方面描述的方法中程序运行装置执行的操作步骤,服务端用于实现如第一方面描述的方法中服务端执行的操作步骤。
56、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
1.一种程序运行方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述每个程序片段对应的类别及第一运行性能,确定运行每个类别的程序片段的配置信息包括:
3.根据权利要求2所述的方法,其特征在于,所述每个子模型是并行优化模型,所述将所述每个程序片段的类别和第一运行性能输入配置推荐模型,获得所述每个类别的程序片段对应的配置信息包括:
4.根据权利要求3所述的方法,其特征在于,所述多个子模型中的第一子模型根据输入的第一类别的n个程序片段和第一运行性能,并行推荐并记录所述第一类别的n个程序片段对应的多个备选配置包括:
5.根据权利要求3所述的方法,其特征在于,所述多个子模型中的第一子模型根据输入的第一类别的n个程序片段和第一运行性能,并行推荐并记录所述第一类别的n个程序片段对应的多个备选配置包括:
6.根据权利要求1至5任一权利要求所述的方法,其特征在于,所述根据所述程序运行时的运行状态特征将所述程序划分为多个程序片段包括:
7.一种程序运行装置,其特征在于,所述装置包括:
8.根据权利要求7所述的装置,其特征在于,所述配置优化单元,用于将所述每个程序片段的类别和第一运行性能输入配置推荐模型,获得所述每个类别的程序片段对应的配置信息,其中,所述配置推荐模型包括多个子模型,所述多个子模型中的每个子模型用于获得一种类别的程序片段对应的配置信息。
9.根据权利要求8所述的装置,其特征在于,所述每个子模型是并行优化模型,所述配置优化单元,用于通过所述多个子模型中的第一子模型根据输入的第一类别的n个程序片段和第一运行性能,并行推荐并记录所述第一类别的n个程序片段对应的多个备选配置,从所述多个备选配置中确定所述第一类别的程序片段的配置信息,其中,一个程序片段对应一个备选配置,所述第一子模型为所述多个子模型中的任意一个子模型。
10.根据权利要求9所述的装置,其特征在于,
11.根据权利要求9所述的装置,其特征在于,
12.根据权利要求7至11任一权利要求所述的装置,其特征在于,所述装置还包括周期获取单元,
13.一种计算设备,其特征在于,包括处理器和存储器,所述存储器用于存储代码,所述处理器用于执行所述代码使得所述计算设备实现如权利要求1至7任一权利要求所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,所述计算机实现如权利要求1至7任一权利要求所述的方法。
