一种性能分析方法、装置及其设备与流程

文档序号:19010200发布日期:2019-10-30 00:16阅读:114来源:国知局
一种性能分析方法、装置及其设备与流程

本申请涉及互联网技术领域,尤其涉及一种性能分析方法、装置及其设备。



背景技术:

随着互联网技术的快速发展,可以由多个服务节点(如功能子模块)实现一个业务,不同的服务节点具有不同的功能,这些服务节点之间存在调用关系,而该调用关系就构成了调用链路,该调用链路上的任何一个服务节点出现异常,就可能导致整个业务异常。因此,需要收集每个服务节点的性能数据,利用性能数据对服务节点进行性能分析,从而根据分析结果确定服务节点是否异常。

但是,传统的性能分析方法,无法从业务维度来分析服务节点是否异常。



技术实现要素:

本申请提供一种性能分析方法,所述方法包括:

接收业务请求,并将所述业务请求对应的业务信息存储到线程栈;

获取服务节点的性能数据,并从所述线程栈中获取所述业务信息;

根据所述性能数据和所述业务信息对所述服务节点进行性能分析。

本申请提供一种性能分析方法,所述方法包括:

创建用户线程,并在所述用户线程对应的线程栈中预留指定栈空间;

通过所述用户线程接收业务请求;

将所述业务请求对应的业务信息存储到所述指定栈空间;

利用所述指定栈空间中存储的业务信息对所述服务节点进行性能分析。

本申请提供一种性能分析装置,所述装置包括:

接收模块,用于接收业务请求;

存储模块,用于将所述业务请求对应的业务信息存储到线程栈;

获取模块,用于获取服务节点的性能数据,并从线程栈获取所述业务信息;

分析模块,用于根据所述性能数据和业务信息对服务节点进行性能分析。

本申请提供一种性能分析装置,所述装置包括:

创建模块,用于创建用户线程,并在所述用户线程对应的线程栈中预留指定栈空间;

接收模块,用于通过所述用户线程接收业务请求;

存储模块,用于将所述业务请求对应的业务信息存储到所述指定栈空间;

分析模块,用于利用所述指定栈空间中存储的业务信息对所述服务节点进行性能分析。

本申请提供一种性能分析设备,包括:

处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:

接收业务请求,并将所述业务请求对应的业务信息存储到线程栈;

获取服务节点的性能数据,并从所述线程栈中获取所述业务信息;

根据所述性能数据和所述业务信息对所述服务节点进行性能分析。

本申请提供一种性能分析设备,包括:

处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:

创建用户线程,并在所述用户线程对应的线程栈中预留指定栈空间;

通过所述用户线程接收业务请求;

将所述业务请求对应的业务信息存储到所述指定栈空间;

利用所述指定栈空间中存储的业务信息对所述服务节点进行性能分析。

基于上述技术方案,本申请实施例中,在接收到业务请求后,通过将业务请求对应的业务信息存储到线程栈,在获取到服务节点的性能数据后,可以从线程栈中获取业务信息,并根据性能数据和业务信息对服务节点进行性能分析,从而从业务维度来查看性能数据,并从业务维度来分析服务节点是否异常。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。

图1是本申请一种实施方式中的应用场景示意图;

图2是本申请一种实施方式中的服务节点处理业务请求的示意图;

图3是本申请一种实施方式中的性能分析方法的流程图;

图4是本申请另一种实施方式中的性能分析方法的流程图;

图5是本申请一种实施方式中的性能分析装置的结构图;

图6是本申请一种实施方式中的性能分析装置的结构图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例中提出了一种性能分析方法,可以应用于性能分析设备,该性能分析设备可以为pc(personalcomputer,个人计算机)、笔记本电脑、移动终端、终端设备、服务器、数据平台、电商平台等,对此设备类型不做限制。

参见图1所示,为了向客户端提供业务(如注册业务、下单业务、支付业务等,对此业务的类型不做限制),则可以包括多个服务节点(如功能子模块等),且不同的服务节点可以具有不同的功能。例如,在服务节点a、服务节点b和服务节点c用于实现注册业务时,则服务节点a、服务节点b和服务节点c组成一个调用链路1;在服务节点a和服务节点d用于实现下单业务时,则服务节点a和服务节点d组成一个调用链路2;在服务节点a和服务节点c用于实现支付业务时,则服务节点a和服务节点c组成一个调用链路3。

进一步的,在接收到针对注册业务的业务请求后,由调用链路1上的服务节点a、服务节点b和服务节点c根据该业务请求进行处理,最终实现注册业务。在接收到针对下单业务的业务请求后,由调用链路2上的服务节点a和服务节点d根据该业务请求进行处理,最终实现下单业务。在接收到针对支付业务的业务请求后,由调用链路3上的服务节点a和服务节点c根据该业务请求进行处理,最终实现支付业务。当然,上述只是几个示例,对此不做限制。

在一个例子中,可以收集每个服务节点的性能数据,并利用该性能数据对该服务节点进行性能分析。例如,可以收集服务节点a的性能数据,并利用该性能数据对服务节点a进行性能分析。例如,性能数据可以包括但不限于cpu资源、内存资源、处理时间、网络资源中的一个或者多个。若cpu资源大于预设阈值,则性能分析结果可以是服务节点a占用的cpu资源较多;基于该性能分析结果,可以对服务节点a的软件和/或硬件进行调整,以减少服务节点a占用的cpu资源;若cpu资源不大于预设阈值,则性能分析结果可以是服务节点a占用的cpu资源合理,不需要对服务节点a的软件和/或硬件进行调整。同理,内存资源、处理时间、网络资源的分析过程与cpu资源类似,在此不再赘述。

参见上述实施例,服务节点a可以对注册业务的业务请求进行处理,可以对下单业务的业务请求进行处理,还可以对支付业务的业务请求进行处理,这样,在收集服务节点a的性能数据时,这个性能数据是针对注册业务的性能数据,还是针对下单业务的性能数据,还是针对支付业务的性能数据。显然,若不关注性能数据对应的业务类型,就会导致无法从业务维度来分析服务节点。

例如,当cpu资源大于预设阈值时,无法获知是注册业务的cpu资源大于预设阈值,还是下单业务的cpu资源大于预设阈值,还是支付业务的cpu资源大于预设阈值,这样,也就无法针对某个业务,有针对性的对服务节点a的软件和/或硬件进行调整,导致调整后的服务节点仍然无法满足业务处理的需求。

针对上述发现,本申请实施例中,在收集服务节点的性能数据时,还可以获取业务请求的业务信息,将该性能数据与该业务信息进行关联,并利用该性能数据和该业务信息对该服务节点进行性能分析,从而可以从业务维度来分析服务节点,针对某个业务,可以有针对性的对服务节点的软件和/或硬件进行调整,使得调整后的服务节点能够满足业务处理的需求,提高用户使用体验。

例如,在收集服务节点a的性能数据(如cpu资源、内存资源、处理时间、网络资源等,后续以cpu资源为例)时,还可以获取业务信息(如支付业务),并利用该性能数据和该业务信息对服务节点a进行性能分析。例如,若cpu资源大于预设阈值,则性能分析结果是服务节点a处理支付业务时占用的cpu资源较多;基于该性能分析结果,可以对服务节点a处理支付业务的软件和/或硬件进行调整,以减少服务节点a处理支付业务时占用的cpu资源;若cpu资源不大于预设阈值,则性能分析结果是服务节点a处理支付业务时占用的cpu资源合理,不需要对服务节点a处理支付业务时的软件和/或硬件进行调整。

在一个例子中,参见图2所示,为服务节点处理业务请求的示意图。在业务请求的处理过程中,可以涉及两个独立的线程,一个线程是用户线程,另一个线程是性能数据采集线程。其中,用户线程用于处理接收到的业务请求,即用户线程可以获取到业务请求对应的业务信息。此外,性能数据采集线程用于采集服务节点的性能数据,但是,无法获取到业务请求对应的业务信息。基于此,如何将业务请求对应的业务信息与性能数据进行关联,从而利用性能数据和业务信息对服务节点进行性能分析,正是本申请实施例所要解决的问题。

参见图2所示,在用户线程创建时,可以在该用户线程对应的线程栈上申请一个空间,为了描述方便,可以将申请的这个空间称为线程栈的指定栈空间,该指定栈空间用于存储业务请求对应的业务信息,而不会存储其它信息。基于此,用户线程在接收到业务请求时,就可以将该业务请求对应的业务信息存储到该指定栈空间。用户线程在接收到新业务请求时,还可以将新业务请求对应的业务信息存储到该指定栈空间,即替换了原有业务请求对应的业务信息。

其中,指定栈空间的内存地址可以是知名内存地址,也可以是其它知名内存区域的地址,如线程局部(threadlocal)的存储区域寄存器,对此不做限制。

参见图2所示,在用户线程创建时,内核模块可以记录该用户线程对应的线程栈的开始位置和结束位置。基于此,通过内核事件触发线程栈同步时,则内核模块可以利用线程栈的开始位置和结束位置,复制用户线程的整个线程栈,并将用户线程的整个线程栈复制到性能数据采集线程的用户空间。其中,内核事件可以是计时器,也可以是线程切换等事件。例如,在满足计时器的计时条件后,触发执行线程栈同步;或者,在发生线程切换时,触发执行线程栈同步。

其中,上述方式是采用操作系统的内核模块来复制用户线程的线程栈,在实际应用中,还可以使用其它用户态线程来复制用户线程的线程栈,对此不做限制,只要能够将用户线程的线程栈复制到性能数据采集线程的用户空间即可。

参见图2所示,由于内核模块已经将用户线程的整个线程栈复制到性能数据采集线程的用户空间,因此,性能数据采集线程可以从性能数据采集线程的用户空间中读取用户线程的线程栈。由于用户线程的线程栈的指定栈空间用于存储业务请求对应的业务信息,因此,性能数据采集线程可以从该指定栈空间中读取业务请求对应的业务信息。此外,性能数据采集线程还可以采集服务节点的性能数据,这样,性能数据采集线程可以将业务信息与性能数据进行关联。

其中,性能数据采集线程在监听到用户空间中已经存储用户线程的线程栈时,可以利用线程栈的内存地址,对线程栈中的数据进行解析,从而解析出指定栈空间中的业务信息。而且,由于用户线程正在对这个线程栈进行处理,即正在处理该业务信息对应的业务请求,因此,性能数据采集线程采集的服务节点的性能数据,正是服务节点处理该业务请求时的业务数据,性能数据采集线程将该业务信息与该性能数据进行关联,可以得到针对该业务信息的性能数据。

在一个例子中,性能数据采集线程可以利用关联后的性能数据和业务信息对服务节点进行性能分析,具体分析过程可以参见上述实施例,在此不再赘述。

在另一个例子中,性能数据采集线程还可以将关联后的性能数据和业务信息提供给性能分析进程,由性能分析进程利用关联后的性能数据和业务信息对服务节点进行性能分析,具体分析过程可以参见上述实施例,在此不再赘述。

无论采用哪种实现方式,在将性能数据和业务信息进行关联后,就可以利用性能数据和业务信息得到性能分析报告,并输出性能分析报告。

在上述实施例中,上述线程(如用户线程或者性能数据采集线程)可以包括但不限于:lwp(lightweightprocess,轻量级线程),线程是程序执行流的最小单元。上述内核模块是操作系统的基本组成部分,可以是为应用程序提供对计算机硬件的安全访问的一部分软件,用于决定一个程序在何时对某部分硬件操作多长时间。上述线程栈可以是指某时刻时内存中线程调度的栈信息。

在上述应用场景下,参见图3所示,为性能分析方法的流程图,可以包括:

步骤301,接收业务请求,并将该业务请求对应的业务信息存储到线程栈。

其中,将该业务请求对应的业务信息存储到线程栈,可以包括但不限于:将该业务请求对应的业务信息存储到线程栈的指定栈空间;其中,该指定栈空间包括创建线程时预留的栈空间,可以是专门用于存储业务信息的栈空间。

例如,参见图2所示,在用户线程创建时,可以在该用户线程对应的线程栈上申请指定栈空间,该指定栈空间用于存储业务信息。基于此,通过用户线程接收到业务请求时,可以将该业务请求对应的业务信息存储到指定栈空间。

在一个例子中,上述业务信息可以包括但不限于以下之一或者任意组合:业务标识(即业务的唯一标识,通过业务标识就可以获知业务类型)、业务类型(如注册业务、下单业务、支付业务等)、服务标识(如服务节点的标识等)、业务请求时间(如服务节点接收到业务请求的时间)。当然,上述业务信息只是示例,对此不做限制,所有与业务有关的信息均在本实施例保护范围之内。

步骤302,获取服务节点的性能数据,并从该线程栈中获取业务信息。

在一个例子中,获取服务节点的性能数据,并从该线程栈中获取业务信息,可以包括:将该线程栈提供给性能数据采集线程;通过该性能数据采集线程获取服务节点的性能数据;通过该性能数据采集线程从该线程栈中获取业务信息。

其中,将该线程栈提供给性能数据采集线程,可以包括:根据线程栈的开始位置和结束位置,复制该线程栈;将复制的线程栈提供给性能数据采集线程。

其中,获取服务节点的性能数据,并从该线程栈中获取业务信息之后,还可以将该服务节点的性能数据与该线程栈中的业务信息进行关联。

例如,参见图2所示,在用户线程创建时,可以通过内核模块记录该用户线程对应的线程栈的开始位置和结束位置。进一步的,在通过内核事件触发线程栈同步时,基于线程栈的开始位置和结束位置,可以通过内核模块复制用户线程的整个线程栈,并将用户线程的整个线程栈复制到性能数据采集线程的用户空间。其中,内核事件可以是计时器,也可以是线程切换,对此不做限制。

参见图2所示,可以通过性能数据采集线程从用户空间的线程栈中获取业务信息,如从线程栈的指定栈空间中获取业务信息。此外,还可以通过性能数据采集线程采集服务节点的性能数据,并将业务信息与该性能数据进行关联。

在另一个例子中,获取服务节点的性能数据,并从该线程栈中获取业务信息,还可以包括:将该线程栈中的业务信息提供给性能数据采集线程;通过该性能数据采集线程获取服务节点的性能数据,并通过该性能数据采集线程获取该业务信息。其中,在获取服务节点的性能数据,并获取业务信息后,还可以将该服务节点的性能数据与该业务信息进行关联,对此关联过程不做限制。当然,还可以采用其它方式将业务信息提供给性能数据采集线程,对此不做限制。

在上述方式中,由于是将线程栈中的业务信息提供给性能数据采集线程,从而减少传输的数据量,通过传输少量数据就可以分析出性能问题。

步骤303,根据该性能数据和该业务信息对服务节点进行性能分析。

其中,根据该性能数据和该业务信息对服务节点进行性能分析,可以包括但不限于:方式一、根据该性能数据对服务节点进行性能分析,得到性能分析结果;建立该业务信息与该性能分析结果的关联关系。和/或,方式二、获取与该业务信息对应的所有性能数据;利用获取的所有性能数据对服务节点进行性能分析,得到性能分析结果;建立该业务信息与该性能分析结果的关联关系。

在方式一中,假设性能数据为服务节点a的性能数据1(如cpu资源、内存资源、处理时间、网络资源等,后续以cpu资源1为例),且业务信息为支付业务,则可以根据cpu资源1对服务节点a进行性能分析,得到性能分析结果,并建立支付业务与该性能分析结果的关联关系。例如,若cpu资源1大于预设阈值,则性能分析结果是占用cpu资源较多,并建立支付业务与性能分析结果的关联关系,表示服务节点a处理支付业务时占用的cpu资源较多。

然后,基于该性能分析结果,可以对服务节点a处理支付业务的软件和/或硬件进行调整,从而可以减少服务节点a处理支付业务时占用的cpu资源。

在方式二中,假设性能数据为服务节点a的性能数据1(如cpu资源、内存资源、处理时间、网络资源等,后续以cpu资源1为例),且业务信息为支付业务,则可以获取支付业务对应的所有性能数据(如服务节点a的cpu资源1-cpu资源100);然后,可以根据cpu资源1-cpu资源100对服务节点a进行性能分析,得到性能分析结果,并建立支付业务与该性能分析结果的关联关系。例如,若cpu资源1-cpu资源100的平均值大于预设阈值,则性能分析结果是占用cpu资源较多,并建立支付业务与性能分析结果的关联关系,表示服务节点a处理支付业务时占用的cpu资源较多。基于该性能分析结果,可以对服务节点a处理支付业务的软件和/或硬件进行调整,从而可以减少服务节点a处理支付业务时占用的cpu资源。若cpu资源1-cpu资源100的平均值不大于预设阈值,则性能分析结果是占用cpu资源合理,并建立支付业务与性能分析结果的关联关系,表示服务节点a处理支付业务时占用的cpu资源合理。

在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。

基于上述技术方案,本申请实施例中,在接收到业务请求后,通过将业务请求对应的业务信息存储到线程栈,在获取到服务节点的性能数据后,可以从线程栈中获取业务信息,并根据性能数据和业务信息对服务节点进行性能分析,从而从业务维度来查看性能数据,并从业务维度来分析服务节点是否异常。

进一步的,在收集服务节点的性能数据时,还可以获取业务请求的业务信息,并将该性能数据与该业务信息进行关联,并利用该性能数据和该业务信息对该服务节点进行性能分析,从而可以从业务维度来分析服务节点的性能,针对某个业务,可以有针对性的对服务节点的软件和/或硬件进行调整,使得调整后的服务节点能够满足业务处理的需求,从而可以提高用户的使用体验。

基于与上述方法同样的申请构思,本申请实施例中还提供一种性能分析方法,参见图4所示,为所述性能分析方法的流程图,所述方法可以包括:

步骤401,创建用户线程,并在用户线程对应的线程栈中预留指定栈空间。

步骤402,通过所述用户线程接收业务请求。

步骤403,将所述业务请求对应的业务信息存储到所述指定栈空间。

步骤404,利用指定栈空间中存储的业务信息对服务节点进行性能分析。

其中,利用指定栈空间中存储的业务信息对服务节点进行性能分析,可以包括:获取服务节点的性能数据,并从指定栈空间中获取业务信息;根据该性能数据和该业务信息对服务节点进行性能分析。进一步的,获取服务节点的性能数据,并从指定栈空间中获取业务信息,可以包括:将所述线程栈提供给性能数据采集线程;通过所述性能数据采集线程获取服务节点的性能数据;通过所述性能数据采集线程从所述指定栈空间中获取所述业务信息。

其中,步骤401-步骤404的处理,可以参见上述实施例,在此不再赘述。

基于与上述方法同样的申请构思,本申请实施例中还提供一种性能分析装置,如图5所示,为所述性能分析装置的结构图,所述装置可以包括:

接收模块501,用于接收业务请求;存储模块502,用于将所述业务请求对应的业务信息存储到线程栈;获取模块503,用于获取服务节点的性能数据,并从所述线程栈中获取所述业务信息;分析模块504,用于根据所述性能数据和所述业务信息对所述服务节点进行性能分析。

所述存储模块502将所述业务请求对应的业务信息存储到线程栈时具体用于:将所述业务请求对应的业务信息存储到所述线程栈的指定栈空间;

其中,所述指定栈空间包括创建线程时预留的栈空间。

在一个例子中,所述获取模块503获取服务节点的性能数据,并从所述线程栈中获取所述业务信息时具体用于:将所述线程栈提供给性能数据采集线程;通过所述性能数据采集线程获取服务节点的性能数据;通过所述性能数据采集线程从所述线程栈中获取所述业务信息。

在一个例子中,所述分析模块504根据所述性能数据和所述业务信息对所述服务节点进行性能分析时具体用于:根据所述性能数据对所述服务节点进行性能分析,得到性能分析结果;建立所述业务信息与所述性能分析结果的关联关系;和/或,获取与所述业务信息对应的所有性能数据;利用获取的性能数据对所述服务节点进行性能分析,得到性能分析结果;建立所述业务信息与所述性能分析结果的关联关系。

基于与上述方法同样的申请构思,本申请实施例还提供一种性能分析设备,所述性能分析设备包括:处理器和机器可读存储介质;其中,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:接收业务请求,并将所述业务请求对应的业务信息存储到线程栈;获取服务节点的性能数据,并从所述线程栈中获取所述业务信息;根据所述性能数据和所述业务信息对所述服务节点进行性能分析。

基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:接收业务请求,并将所述业务请求对应的业务信息存储到线程栈;获取服务节点的性能数据,并从所述线程栈中获取所述业务信息;根据所述性能数据和所述业务信息对所述服务节点进行性能分析。

基于与上述方法同样的申请构思,本申请实施例中还提供一种性能分析装置,如图6所示,为所述性能分析装置的结构图,所述装置可以包括:创建模块601,用于创建用户线程,并在所述用户线程对应的线程栈中预留指定栈空间;接收模块602,用于通过所述用户线程接收业务请求;存储模块603,用于将所述业务请求对应的业务信息存储到所述指定栈空间;分析模块604,用于利用所述指定栈空间中存储的业务信息对所述服务节点进行性能分析。

所述分析模块604利用所述指定栈空间中存储的业务信息对服务节点进行性能分析时具体用于:获取服务节点的性能数据,并从所述指定栈空间中获取所述业务信息;根据所述性能数据和所述业务信息对服务节点进行性能分析。

基于与上述方法同样的申请构思,本申请实施例还提供一种性能分析设备,包括:处理器和机器可读存储介质;其中,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:创建用户线程,并在所述用户线程对应的线程栈中预留指定栈空间;通过所述用户线程接收业务请求;将所述业务请求对应的业务信息存储到所述指定栈空间;利用所述指定栈空间中存储的业务信息对所述服务节点进行性能分析。

基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:创建用户线程,并在所述用户线程对应的线程栈中预留指定栈空间;通过所述用户线程接收业务请求;将所述业务请求对应的业务信息存储到所述指定栈空间;利用所述指定栈空间中存储的业务信息对所述服务节点进行性能分析。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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