一种绑定策略推断方法、装置、电子设备及存储介质与流程

文档序号:26192577发布日期:2021-08-06 18:45阅读:99来源:国知局
一种绑定策略推断方法、装置、电子设备及存储介质与流程

本申请涉及计算机优化和处理器绑定的技术领域,具体而言,涉及一种绑定策略推断方法、装置、电子设备及存储介质。



背景技术:

中央处理器亲和性(affinity),又被称为处理器亲和性或者处理器关联,是指通过处理器关联可以将运行软体(例如:虚拟程序、进程或线程)映射到一个或多个物理处理器上。该技术基于对称多处理机操作系统中的本机中心队列(nativecentralqueue)调度算法。队列(queue)中的每一个任务(进程或线程)都有一个标签(tag)来指定它们倾向的处理器;在分配处理器的阶段,每个任务就会分配到它们所倾向的处理器上。

绑定策略,是中央处理器(centralprocessingunit,cpu)与进程或线程关联绑定的亲和性绑定策略(affinitybindstrategy)。通常服务器上的cpu有很多个,进程或线程也有很多个,将多个cpu和多个进程或线程进行绑定关联的策略可以理解为绑定策略。

非统一内存访问架构(non-uniformmemoryaccess,numa)是一种为多处理器的电脑设计的内存架构,内存访问时间取决于内存相对于处理器的位置。在numa下,处理器访问它自己的本地内存的速度比非本地内存(内存位于另一个处理器,或者是处理器之间共享的内存)快一些。

目前,针对numa架构服务器的cpu亲和性绑定策略,通常是由专业经验的调优工程师和操作系统运维工程师共同协商,并对该绑定策略进行测试后,从而确定该绑定策略是否是该numa架构服务器的最优亲和性绑定策略。在实践过程中发现,在没有专业经验的调优工程师时,普通运维工程师很难从无数的绑定策略中确定出最优亲和性绑定策略;通过专业人员进行协商和迭代测试来推断出服务器的最优亲和性绑定策略的效率比较低。



技术实现要素:

本申请实施例的目的在于提供一种绑定策略推断方法、装置、电子设备及存储介质,用于改善推断出服务器的最优亲和性绑定策略的效率比较低的问题。

本申请实施例提供了一种绑定策略推断方法,包括:获取测试脚本和层级文件中的多个绑定策略,绑定策略是中央处理器与运行进程绑定的亲和性策略;使用多个绑定策略中的每个绑定策略运行测试脚本,获得多个测试数据;根据预设特征指标分别对多个测试数据进行加权计算,获得多个加权分数;将多个加权分数中最大分数对应的绑定策略确定为推断出的最优亲和性绑定策略。在上述的实现过程中,通过将绑定策略以层级结构的方式存放在层级文件中,并将多个加权分数中最大分数对应的绑定策略确定为推断出的最优亲和性绑定策略,能够加速绑定策略被迭代运行测试脚本的执行效率,从而有效地提高推断出服务器的最优亲和性绑定策略的效率。

可选地,在本申请实施例中,获取测试脚本和层级文件中的多个绑定策略,包括:获取测试用例和预期执行时长,根据测试用例生成测试脚本;使用多个绑定策略的每个绑定策略多次执行测试脚本,获得多个执行时长,并根据多个执行时长和预期执行时长确定标准差率;判断标准差率是否大于预设阈值;若否,则将绑定策略加入层级文件。在上述的实现过程中,通过根据多个执行时长和预期执行时长确定标准差率,并根据标准差率来确定是否将绑定策略加入层级文件的方式,由于层级文件中的绑定策略是以层级结构的方式存放的,从而在读取和解析层级文件时也是以层级结构方式读取、解析和执行的,通过这种层级结构的方式能够有效地提升推断出服务器的最优亲和性绑定策略的执行效率。

可选地,在本申请实施例中,在判断标准差率是否大于预设阈值之后,还包括:若标准差率大于预设阈值,则调整测试脚本,直到标准差率小于预设阈值。在上述的实现过程中,通过若标准差率大于预设阈值,则调整测试脚本,直到标准差率小于预设阈值,从而避免了标准差率小于预设阈值导致层级文件中的绑定策略有效性不高的问题,有效地缩短了推断出服务器的最优亲和性绑定策略的时长。

可选地,在本申请实施例中,根据多个执行时长和预期执行时长确定标准差率,包括:计算多个执行时长中的每个执行时长与预期执行时长之间的误差数据,获得多个误差数据;将多个执行时长的标准差除以多个误差数据的平均值,获得标准差率。在上述的实现过程中,通过将多个执行时长的标准差除以多个误差数据的平均值获得的标准差率来确定最优亲和性绑定策略,从而避免了只根据一个执行时长或者一个误差数据来确定最优策略的问题,有效地提高了确定最优策略的准确率。

可选地,在本申请实施例中,预设特征指标包括:交叉访问占比和外部访问占比;根据预设特征指标分别对多个测试数据进行加权计算,包括:使用监控服务获取交叉访问占比的数值和外部访问占比的数值;对交叉访问占比的数值和外部访问占比的数值对多个测试数据进行加权计算。在上述的实现过程中,由于使用了numa的交叉访问占比和numa的外部访问占比作为服务器所有numa节点的指标权重,服务器的所有numa节点中的任意一个numa节点性能变慢(即numa的命中占比减少)时都会影响到下面的总体执行耗时指标,从而能够有效地提高了确定最优策略的准确率和效率。

可选地,在本申请实施例中,在将多个加权分数中最大分数对应的绑定策略确定为推断出的最优亲和性绑定策略之后,还包括:获得待计算任务;使用最优亲和性绑定策略对待计算任务进行动态绑定计算,获得计算结果。在上述的实现过程中,通过使用最优亲和性绑定策略对待计算任务进行动态绑定计算,从而有效地提高了待计算任务的运行效率。

可选地,在本申请实施例中,待计算任务是非统一内存访问架构服务器上的进程任务或者线程任务。

本申请实施例还提供了一种绑定策略推断装置,包括:文件策略获取模块,用于获取测试脚本和层级文件中的多个绑定策略,绑定策略是中央处理器与运行进程绑定的亲和性策略;测试数据获得模块,用于使用多个绑定策略中的每个绑定策略运行测试脚本,获得多个测试数据;加权分数获得模块,用于根据预设特征指标分别对多个测试数据进行加权计算,获得多个加权分数;最优策略确定模块,用于将多个加权分数中最大分数对应的绑定策略确定为推断出的最优亲和性绑定策略。

可选地,在本申请实施例中,文件策略获取模块,包括:测试脚本生成模块,用于获取测试用例和预期执行时长,根据测试用例生成测试脚本;标准差率确定模块,用于使用多个绑定策略的每个绑定策略多次执行测试脚本,获得多个执行时长,并根据多个执行时长和预期执行时长确定标准差率;标准差率判断模块,用于判断标准差率是否大于预设阈值;层级文件获得模块,用于若标准差率不大于预设阈值,则将绑定策略加入层级文件。

可选地,在本申请实施例中,文件策略获取模块,还包括:测试脚本调整模块,用于若标准差率大于预设阈值,则调整测试脚本,直到标准差率小于预设阈值。

可选地,在本申请实施例中,标准差率确定模块,包括:误差数据获得模块,用于计算多个执行时长中的每个执行时长与预期执行时长之间的误差数据,获得多个误差数据;标准差率计算模块,用于将多个执行时长的标准差除以多个误差数据的平均值,获得标准差率。

可选地,在本申请实施例中,预设特征指标包括:交叉访问占比和外部访问占比;加权分数获得模块,包括:监控数值获取模块,用于使用监控服务获取交叉访问占比的数值和外部访问占比的数值;数据加权计算模块,用于对交叉访问占比的数值和外部访问占比的数值对多个测试数据进行加权计算。

可选地,在本申请实施例中,绑定策略推断装置,还包括:计算任务获得模块,用于获得待计算任务;动态绑定计算模块,用于使用最优亲和性绑定策略对待计算任务进行动态绑定计算,获得计算结果。

可选地,在本申请实施例中,待计算任务是非统一内存访问架构服务器上的进程任务或者线程任务。

本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出的本申请实施例提供的绑定策略推断方法的流程示意图;

图2示出的本申请实施例提供的层级文件的层级结构示意图;

图3示出的本申请实施例提供的使用最优策略运行计算任务的流程示意图;

图4示出的本申请实施例提供的绑定策略推断装置的结构示意图;

图5示出的本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。

在介绍本申请实施例提供的绑定策略推断方法之前,先介绍本申请实施例中所涉及的一些概念:

测试用例(testcase)是指在软件工程中,测试者根据测试用例来确定应用软件或软件系统是否正确工作的说明文档,或者理解为确定软件程序或系统是否通过测试的方法叫做测试准则。

需要说明的是,本申请实施例提供的绑定策略推断方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者上述的服务器,设备终端例如:智能手机、个人电脑(personalcomputer,pc)或者平板电脑等;服务器例如包括多个numa内存架构处理器的服务器,此处的服务器可以是双路海光服务器,双路海光服务器拥有8个numa节点(即numanode)。

在介绍本申请实施例提供的绑定策略推断方法之前,先介绍该绑定策略推断方法适用的应用场景,这里的应用场景包括但不限于:使用该绑定策略推断方法推断出numa架构的服务器适合的最优亲和性绑定策略,然后,使用最优亲和性绑定策略将该服务器上的进程与cpu进行绑定,从而通过亲和性绑定策略的方式优化该服务器上执行的进程任务等。

请参见图1示出的本申请实施例提供的绑定策略推断方法的流程示意图;该绑定策略推断方法的主要思路是,通过将绑定策略以层级结构的方式存放在层级文件中,并将多个加权分数中最大分数对应的绑定策略确定为推断出的最优亲和性绑定策略,能够加速绑定策略被迭代运行测试脚本的执行效率,从而有效地提高推断出服务器的最优亲和性绑定策略的效率;上述绑定策略推断方法的实施方式可以包括:

步骤s110:获取测试脚本和层级文件中的多个绑定策略,绑定策略是中央处理器与运行进程绑定的亲和性策略。

请参见图2示出的本申请实施例提供的层级文件的层级结构示意图;层级文件是指以层级结构的方式存放亲和性绑定策略的文件,亲和性绑定是指cpu与进程或线程关联绑定。层级文件中的层级标签layer表示层级,层级标签后面的数值代表层级数值,层级数值越低代表执行的优先级越高,层级标签下面有多个策略,以冒号为分割符,冒号前面是策略名称,冒号后面是绑定策略的前缀表示。图2中的第0层策略的含义是,通过最远距离绑定来验证该测试用例对应的测试脚本是否存在优化空间,如果不存在优化空间,那么就直接结束执行该测试脚本;第1层的策略的含义是,验证单个numa节点是否满足测试用例对应测试脚本的优化条件,如果满足则进入第2层策略(图未示出),如果有多层策略,则按照此方式以此类推。numa绑定前缀有很多种方式,例如:交叉绑定(interleave)、内存绑定(membind)、cpu绑定(cpubind)、仅使用node本地内存(localalloc)和按优先级绑定(preferred)等等。

上述步骤s110的实施方式可以包括:

步骤s111:获取测试用例和预期执行时长,根据测试用例生成测试脚本。

上述步骤s111中的测试用例和预期执行时长的获取方式有很多种,包括但不限于:第一种获取方式,电子设备接收其它终端设备发送的测试用例和预期执行时长,将测试用例和预期执行时长存储至文件系统、数据库或移动存储设备中,该测试用例可以是研发人员或者开发人员将用户的业务进程抽象为测试用例,事先在其它终端设备编辑好的,然后向电子设备发送编辑好的测试用例;第二种获取方式,获取预先存储的测试用例和预期执行时长,具体例如:从文件系统中获取测试用例和预期执行时长,或者从数据库中获取测试用例和预期执行时长,或者从移动存储设备中获取测试用例和预期执行时长;第三种获取方式,使用浏览器等软件获取互联网上的测试用例和预期执行时长,或者使用其它应用程序访问互联网获取测试用例和预期执行时长。

上述步骤s111中的根据测试用例生成测试脚本的实施方式例如:使用python单元测试(pythonunittest)框架将测试用例填充至脚本模板后,生成测试脚本,其中,pythonunittest框架是一个专门用于进行python程序单元测试的编码框架。在具体实践过程中,可以在测试脚本中设置各种参数或者规则,例如测试过程中所选用的参数、测试效果的打分规则或者评估标准等等;还可以根据不同的测试用例类型设置不同的测试脚本,具体例如:如果测试用例的类型是客户端类型,那么可以通过执行时间来作为测试效果的打分规则或者评估标准,或者,将测试脚本最终输出的单位时间内处理吞吐量来作为测试效果的打分规则或者评估标准;如果测试用例的类型是服务端类型,那么可以通过包含控制绑定策略的服务器启动和停止的测试脚本所花费的时间来作为测试效果的打分规则或者评估标准;如果测试用例的类型是分布式集群类型,那么可以在服务端类型上,对分布式集群内的所有服务器节点启动和停止的测试脚本所花费的时间来作为测试效果的打分规则或者评估标准。

步骤s112:使用多个绑定策略的每个绑定策略多次执行测试脚本,获得多个执行时长,并根据多个执行时长和预期执行时长确定标准差率。

上述步骤s112的实施方式例如:使用多个绑定策略的每个绑定策略多次执行测试脚本,获得多个执行时长,并计算多个执行时长中的每个执行时长与预期执行时长之间的误差数据,获得多个误差数据。将多个执行时长的标准差除以多个误差数据的平均值(或者称之为期望值),获得标准差率。假设将每个绑定策略执行该执行脚本共执行了四次为例进行说明,那么假设四次的执行时长分别为95、91、91和100秒,预期执行时长分别为84、93、86和81秒,那么容易算出多个误差数据分别为11、-2、5和19秒,多个执行时长的标准差为4.272,多个误差数据的平均值为8.25,标准差率则为0.518。

步骤s113:判断标准差率是否大于预设阈值。

步骤s114:若标准差率小于或者等于预设阈值,则将绑定策略加入层级文件。

步骤s115:若标准差率大于预设阈值,则调整测试脚本,直到标准差率小于预设阈值。

上述步骤s113至步骤s115的实施方式例如:判断标准差率是否大于预设阈值;若标准差率小于或者等于预设阈值,则将绑定策略加入层级文件;若标准差率大于预设阈值,则调整测试脚本(或者延长单次测试脚本的执行时长),直到标准差率小于预设阈值。具体例如:假设预设阈值为0.5,如果标准差率是0.518,那么标准差率是大于预设阈值的,就需要调整测试脚本,直到标准差率小于预设阈值0.5;如果标准差率是0.4,那么标准差率是小于预设阈值的,就需要将该绑定策略加入层级文件。当然在具体的实施过程中,由于不同环境中的numa命中率存在大量的随机性,且不同的误差控制方式是需要与亲和性绑定策略密切配合的,因此,上述的预设阈值是需要根据具体情况进行设置的,例如将预设阈值设置为0.05、0.1或者0.2等等。

在步骤s110之后,执行步骤s120:使用多个绑定策略中的每个绑定策略运行测试脚本,获得多个测试数据。

测试数据,是指在亲和性绑定策略运行和测试的过程中产生的监控数据,此处的测试数据例如:常规操作系统的指标监控数据(cpu负载率、内存总使用率和磁盘吞吐率等等)和numa架构下的监控数据等等。

上述步骤s120的实施方式包括:使用从层级文件中获取的多个绑定策略中的每个绑定策略运行测试脚本,获得多个测试数据,此处的多个测试数据包括:cpu与内存交互时的numa命中率。其中,cpu与内存交互时的numa命中率可以根据数据库或者ehcache缓存技术记录的多个指标值来计算获得,此处的多个指标值包括但不限于:内存总量(memtotal)、内存空闲量(memfree)和内存使用量(memused)等等。

在步骤s120之后,执行步骤s130:根据预设特征指标分别对多个测试数据进行加权计算,获得多个加权分数。

上述步骤s130的实施方式有很多种,是根据预设特征指标的不同而不同的,在具体场景测试时发现,不同的测试数据规模会产生不同的numa架构服务器压力,而在不同服务器压力的情况下,根据不同特征指标选择出的最优亲和性绑定策略也是不同的。上述步骤s130的实施方式可以包括:

第一种实施方式,上述的预设特征指标可以包括:交叉访问占比(numaforeignrate,nfr)和外部访问占比(numainterleaverate,nir);可以使用监控服务获取交叉访问占比和外部访问占比来计算加权分数,该实施方式包括:

步骤s131:使用监控服务获取交叉访问占比的数值和外部访问占比的数值。

上述步骤s131的实施方式例如:使用监控服务获取numa的交叉访问占比和numa的外部访问占比等等监控指标的数值。由于使用了numa的交叉访问占比和numa的外部访问占比作为服务器所有numa节点的指标权重,服务器的所有numa节点中的任意一个numa节点性能变慢(即numa的命中占比减少)时都会影响到下面的总体执行耗时指标,从而能够根据numa的交叉访问占比和numa的外部访问占比来选择出最优的亲和性绑定策略。当然在具体的实施过程中,还可以监控和使用更多的指标来参与计算,这些指标例如:当前已使用内存大于预设指定比例的执行时长、当前cpu使用率大于预设指定比率的执行时长和numa的命中数(或者numa的命中占比)等等。

步骤s132:对交叉访问占比的数值和外部访问占比的数值对多个测试数据进行加权计算,获得加权分数。

上述步骤s132的实施方式例如:使用公式score=cost*(1-max(nfr+nir))k对交叉访问占比的数值和外部访问占比的数值对多个测试数据进行加权计算,获得加权分数;其中,score为加权分数,cost为耗时指标,nfr为外部访问占比,nir为交叉访问占比,max表示从多个numa节点中筛选出外部访问占比与交叉访问占比之和最大值,k是根据实际场景需设置的超参数,例如将k设置为2或者3等等。需要说明的是,上述的耗时指标可以包括执行耗时及负载情况下的实时执行耗时,若在优化某些cpu的功率测试场景中,该执行耗时指标也可以更换为cpu的使用率执行耗时(即cpu_percent_cost)指标求和。

第二种实施方式,使用神经网络模型来计算各个监控指标的权重,并使用各个监控指标的权重乘以各个监控指标的具体数值来进行加权计算,从而获得加权分数,该实施方式例如:使用神经网络模型来计算当前已使用内存大于预设指定比例的执行时长、当前cpu使用率大于预设指定比率的执行时长、numa的命中占比、内存总量、内存空闲量、内存使用量、活动的(active)内存、不活动的(incativer)内存等等监控指标的权重,然后,使用各个监控指标的权重乘以各个监控指标的具体数值来进行加权计算,从而获得加权分数。其中,可以使用的神经网络模型包括但不限于:lenet网络模型、alexnet网络模型、vgg网络模型、googlenet网络模型和resnet网络模型等等。

在步骤s130之后,执行步骤s140:将多个加权分数中最大分数对应的绑定策略确定为推断出的最优亲和性绑定策略。

上述步骤s140的实施方式例如:从多个加权分数对应的绑定策略中找出最大分数对应的绑定策略,并将最大分数对应的绑定策略确定为推断出的最优亲和性绑定策略。

在上述的实现过程中,首先,获取测试脚本和层级文件中的多个绑定策略,然后,根据预设特征指标对策略运行测试脚本获得的多个测试数据进行加权计算,获得多个加权分数;最后,将多个加权分数中最大分数对应的绑定策略确定为推断出的最优亲和性绑定策略。也就是说,通过将绑定策略以层级结构的方式存放在层级文件中,并将多个加权分数中最大分数对应的绑定策略确定为推断出的最优亲和性绑定策略,能够加速绑定策略被迭代运行测试脚本的执行效率,从而有效地提高推断出服务器的最优亲和性绑定策略的效率。

请参见图3示出的本申请实施例提供的使用最优策略运行计算任务的流程示意图;可选地,在确定最优亲和性绑定策略之后,还可以使用最优策略运行计算任务,该计算任务的运行过程可以包括:

步骤s210:获得待计算任务。

上述步骤s210的实施方式例如:在numa服务器上获取到待计算任务,其中,待计算任务可以是非统一内存访问架构服务器上的进程任务或者线程任务。

在步骤s210之后,执行步骤s220:使用最优亲和性绑定策略对待计算任务进行动态绑定计算,获得计算结果。

上述步骤s220的实施方式例如:通过cpuset命令或者taskset命令使用最优亲和性绑定策略对待计算任务进行动态绑定计算,获得计算结果;其中,使用cpuset命令和taskset命令对已经运行的进程与特定cpu进行绑定,或者,使用cpuset命令和taskset命令对已经运行的线程与特定cpu进行绑定,从而提升已经运行的进程或者线程与特定cpu的亲和度,并有益于后续提高cpu的各种性能。

在上述的实现过程中,通过获得非统一内存访问架构服务器上的待计算任务使用最优亲和性绑定策略对待计算任务进行动态绑定计算,从而提升已经运行的进程或者线程与特定cpu的亲和度,有效地提高了待计算任务的运行效率。

请参见图4示出的本申请实施例提供的绑定策略推断装置的结构示意图;本申请实施例提供了一种绑定策略推断装置300,包括:

文件策略获取模块310,用于获取测试脚本和层级文件中的多个绑定策略,绑定策略是中央处理器与运行进程绑定的亲和性策略。

测试数据获得模块320,用于使用多个绑定策略中的每个绑定策略运行测试脚本,获得多个测试数据。

加权分数获得模块330,用于根据预设特征指标分别对多个测试数据进行加权计算,获得多个加权分数。

最优策略确定模块340,用于将多个加权分数中最大分数对应的绑定策略确定为推断出的最优亲和性绑定策略。

可选地,在本申请实施例中,文件策略获取模块,包括:

测试脚本生成模块,用于获取测试用例和预期执行时长,根据测试用例生成测试脚本。

标准差率确定模块,用于使用多个绑定策略的每个绑定策略多次执行测试脚本,获得多个执行时长,并根据多个执行时长和预期执行时长确定标准差率。

标准差率判断模块,用于判断标准差率是否大于预设阈值。

层级文件获得模块,用于若标准差率不大于预设阈值,则将绑定策略加入层级文件。

可选地,在本申请实施例中,文件策略获取模块,还包括:

测试脚本调整模块,用于若标准差率大于预设阈值,则调整测试脚本,直到标准差率小于预设阈值。

可选地,在本申请实施例中,标准差率确定模块,包括:

误差数据获得模块,用于计算多个执行时长中的每个执行时长与预期执行时长之间的误差数据,获得多个误差数据。

标准差率计算模块,用于将多个执行时长的标准差除以多个误差数据的平均值,获得标准差率。

可选地,在本申请实施例中,预设特征指标包括:交叉访问占比和外部访问占比;加权分数获得模块,包括:

监控数值获取模块,用于使用监控服务获取交叉访问占比的数值和外部访问占比的数值。

数据加权计算模块,用于对交叉访问占比的数值和外部访问占比的数值对多个测试数据进行加权计算。

可选地,在本申请实施例中,绑定策略推断装置,还包括:

计算任务获得模块,用于获得待计算任务。

动态绑定计算模块,用于使用最优亲和性绑定策略对待计算任务进行动态绑定计算,获得计算结果。

可选地,在本申请实施例中,待计算任务是非统一内存访问架构服务器上的进程任务或者线程任务。

应理解的是,该装置与上述的绑定策略推断方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operatingsystem,os)中的软件功能模块。

请参见图5示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备400,包括:处理器410和存储器420,存储器420存储有处理器410可执行的机器可读指令,机器可读指令被处理器410执行时执行如上的方法。

本申请实施例还提供了一种计算机可读存储介质430,该计算机可读存储介质430上存储有计算机程序,该计算机程序被处理器410运行时执行如上的方法。

其中,计算机可读存储介质430可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammablereadonlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。

本申请实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。

另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1