CN106293890B - 一种基于复杂度的业务处理方法和装置 - Google Patents
一种基于复杂度的业务处理方法和装置 Download PDFInfo
- Publication number
- CN106293890B CN106293890B CN201510314346.3A CN201510314346A CN106293890B CN 106293890 B CN106293890 B CN 106293890B CN 201510314346 A CN201510314346 A CN 201510314346A CN 106293890 B CN106293890 B CN 106293890B
- Authority
- CN
- China
- Prior art keywords
- kernel
- complexity
- task program
- information
- informations
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种基于复杂度的业务处理方法和装置,该方法包括:当任务程序执行完成时,确定执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息;计算所述一个或多个内核信息一一对应的一个或多个运行时间;根据所述一个或多个内核信息及一一对应的一个或多个运行时间计算复杂度;根据所述复杂度进行业务处理。本申请实施例通过执行任务程序的各内核的运行时间计算复杂度,适用于多种编译格式的任务程序,大大提高了实用性,同时,复杂度可以真实反映该任务程序的逻辑复杂程度,避免了经验估算,大大提高了准确率,进而大大提高了业务处理的效率。
Description
技术领域
本申请涉及计算机处理技术领域,特别是涉及一种基于复杂度的业务处理方法和一种基于复杂度的业务处理装置。
背景技术
随着大数据技术的发展,各个云计算平台上的计算任务出现了井喷的趋势,通常,会以复杂度对计算任务进行衡量。
目前,复杂度一般是通过匹配SQL(Structured Query Language,结构化查询语言)语法的关键字计算的。具体而言,在设置一个初始复杂度的基础上,当匹配到一个关键字,则乘以相应的复杂度权值。
例如,假设所有SQL语句初始复杂度为1,若SQL语句中匹配到一个关键字join,复杂度乘以1.1的权值,若SQL语句匹配到一个关键字order by时,复杂度乘以1.2的权值。
但是,上述复杂度的计算方法只能计量应用SQL语句的任务的复杂度,实用性低,无法计算集群中大量的Map/Reduce、MPI(Message Passing Interface,消息传递接口)、graph等非应用SQL语句的任务的复杂度;并且,复杂度的权值是根据经验值来推算的,计算准确率低。进而,使得在基于复杂度进行的业务处理的效率低。
以优化为例,某些任务,调整某个底层参数,如控制启动的实例数不超过某一个值,就可以给系统带来巨大的优化,大大提高计算性能。但是,这个任务的计算逻辑和复杂度没有任何的变化,基于上述复杂度的计算方式,由于关键字并未发生变化,可能复杂度在优化前和优化后基本是相同的,可能会认为当前优化处理是失败的,需要重新进行优化,导致资源浪费、优化处理效率低。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于复杂度的业务处理方法和相应的一种基于复杂度的业务处理装置。
为了解决上述问题,本申请公开了一种基于复杂度的业务处理方法,包括:
当任务程序执行完成时,确定执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息;
计算所述一个或多个内核信息一一对应的一个或多个运行时间;
根据所述一个或多个内核信息及一一对应的一个或多个运行时间计算复杂度;
根据所述复杂度进行业务处理。
优选地,所述当任务程序执行完成时,确定执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息包括:
提取在任务程序执行前,分配执行所述任务程序的一个或多个内核一一对应的内核信息;
或者,
调用记录执行信息的日志信息;
从所述日志信息中读取执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息。
优选地,所述计算所述一个或多个内核信息一一对应的一个或多个运行时间的步骤包括:
调用记录执行信息的日志信息;
从所述日志信息中读取所述一个或多个内核一一对应的执行所述任务程序的一个或多个开始时间和一个或多个结束时间;
计算所述一个或多个开始时间和所述一个或多个结束时间之差,获得一个或多个运行时间。
优选地,所述复杂度以一个内核满负载运行一个标准时间所能提供的计算能力进行计量。
优选地,所述根据所述一个或多个内核信息及一一对应的一个或多个运行时间计算复杂度的步骤包括:
计算所述一个或多个内核信息与一一对应的、换算为标准时间之后的一个或多个运行时间的乘积,获得一个或多个参考计量信息;
计算所述一个或多个参考计量信息之和,获得复杂度。
优选地,所述计算所述一个或多个参考计量信息之和,获得复杂度的步骤包括:
将所述一个或多个参考计量信息中的内核信息进行统一处理;
计算统一处理之后的一个或多个参考计量信息的数值之和,获得复杂度。
优选地,所述根据所述复杂度进行业务处理的步骤包括:
获取所述一个或多个内核信息一一对应的一个或多个权重;
采用所述复杂度和所述一个或多个权重计算执行成本。
优选地,所述采用所述复杂度和所述一个或多个权重计算执行成本的步骤包括:
对所述一个或多个参考计量信息之和配置所述权重,获得执行成本;
或者,
对所述一个或多个参考计量信息配置一一对应的一个或多个权重;
计算配置权重后的所述一个或多个参考计量信息的和,获得执行成本。
优选地,所述根据所述复杂度进行业务处理的步骤包括:
按照所述复杂度对所述任务程序进行优化处理。
本申请实施例还公开了一种基于复杂度的业务处理装置,包括:
内核信息确定模块,用于任务程序执行完成时,确定执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息;
运行时间计算模块,用于计算所述一个或多个内核信息一一对应的一个或多个运行时间;
复杂度计算模块,用于根据所述一个或多个内核信息及一一对应的一个或多个运行时间计算复杂度;
业务处理模块,用于根据所述复杂度进行业务处理。
优选地,所述内核信息确定模块包括:
内核信息提取子模块,用于提取在任务程序执行前,分配执行所述任务程序的一个或多个内核一一对应的内核信息;
或者,
第一日志信息调用子模块,用于调用记录执行信息的日志信息;
内核信息读取子模块,用于从所述日志信息中读取执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息。
优选地,所述运行时间计算模块包括:
第二日志信息调用子模块,用于调用记录执行信息的日志信息;
时间读取子模块,用于从所述日志信息中读取所述一个或多个内核一一对应的执行所述任务程序的一个或多个开始时间和一个或多个结束时间;
时间差计算子模块,用于计算所述一个或多个开始时间和所述一个或多个结束时间之差,获得一个或多个运行时间。
优选地,所述复杂度以一个内核满负载运行一个标准时间所能提供的计算能力进行计量。
优选地,所述复杂度计算模块包括:
参考计量信息计算子模块,用于计算所述一个或多个内核信息与一一对应的、换算为标准时间之后的一个或多个运行时间的乘积,获得一个或多个参考计量信息;
参考计量信息和计算子模块,用于计算所述一个或多个参考计量信息之和,获得复杂度。
优选地,所述参考计量信息和计算子模块包括:
统一处理子模块,用于将所述一个或多个参考计量信息中的内核信息进行统一处理;
算术计算子模块,用于计算统一处理之后的一个或多个参考计量信息的数值之和,获得复杂度。
优选地,所述业务处理模块包括:
权重获取子模块,用于获取所述一个或多个内核信息一一对应的一个或多个权重;
执行成本计算子模块,用于采用所述复杂度和所述一个或多个权重计算执行成本。
优选地,所述执行成本计算子模块包括:
第一权重配置子模块,用于对所述一个或多个参考计量信息之和配置所述权重,获得执行成本;
或者,
第二权重配置子模块,用于对所述一个或多个参考计量信息配置一一对应的一个或多个权重;
权重和计算子模块,用于计算配置权重后的所述一个或多个参考计量信息的和,获得执行成本。
优选地,所述业务处理模块包括:
优化子模块,用于按照所述复杂度对所述任务程序进行优化处理。
本申请实施例包括以下优点:
本申请实施例通过执行任务程序的各内核的运行时间计算复杂度,适用于多种编译格式的任务程序,大大提高了实用性,同时,复杂度可以真实反映该任务程序的逻辑复杂程度,避免了经验估算,大大提高了准确率,进而大大提高了业务处理的效率。
附图说明
图1是本申请的一种基于复杂度的业务处理方法实施例的步骤流程图;
图2是本申请的一种基于复杂度的业务处理装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种基于复杂度的业务处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,当任务程序执行完成时,确定执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息;
需要说明的是,本申请实施例可以应用在单台计算机,如个人电脑、移动设备等等,也可以应用在计算机集群中,如分布式系统等等,本申请实施例对此不加以限制。
以某个分布式系统为例,该分布式系统可以分为以下几部分:
分布式系统底层服务:提供分布式环境下所需要的协调服务、远程过程调用、安全管理和资源管理的服务。这些底层服务为上层的分布式文件系统、任务调度等模块提供支持。
分布式文件系统:提供一个海量的、可靠的、可扩展的数据存储服务,将集群中各个节点的存储能力聚集起来,并能够自动屏蔽软硬件故障,为用户提供不间断的数据访问服务;支持增量扩容和数据的自动平衡,提供用户空间文件访问API(Application ProgramInterface,应用程序编程接口),支持随机读写和追加写的操作。
任务调度:为集群系统中的任务提供调度服务,同时支持强调响应速度的在线服务(Online Service)和强调处理数据吞吐量的离线任务(Batch Processing Job);自动检测系统中故障和热点,通过错误重试、针对长尾作业并发备份作业等方式,保证作业稳定可靠地完成。
集群监控和部署:对集群的状态和上层应用服务的运行状态和性能指标进行监控,对异常事件产生警报和记录;为运维人员提供整个分布式系统以及上层应用的部署和配置管理,支持在线集群扩容、缩容和应用服务的在线升级。
在每台计算机中,一般都配置有中央处理器(Central Processing Unit,CPU),中央处理器是一块大规模的集成电路,是一台计算机的运算核心和控制核心,可以用于解释计算机指令以及处理计算机程序中的数据。
大多数情况下,单台计算机,如个人电脑、移动设备等,一般是配置一个中央处理器。但是,在某些大型服务器中,如刀片服务器等,单台计算机可以集成两个或两个以上的中央处理器。
此外,在每个中央处理器中,可以配置一个内核(Core),也可以配置多个内核(即两个或两个以上的内核),而内核信息可以是能够代表一中央处理器的内核的信息,例如,内核型号、标识内核的字母core,即内核与内核信息是一一对应的。
在程序的正常运行、测试等过程中,一般由中央处理器的内核执行。
具体而言,程序一般是由指令构成的序列,执行程序可以指按指令序列逐条执行指令。若把程序装入主存储器(简称主存)中,就可以由中央处理器完成从主存取指令和执行指令的任务。
而任务程序是相对于分配到单台计算机或计算机集群中某个处理器的内核(Core)执行而言的,其本质也是程序。
在本申请的一种优选实施例中,步骤101可以包括如下子步骤:
子步骤S11,提取在任务程序执行前,分配执行所述任务程序的一个或多个内核一一对应的内核信息;
在本申请实施例中,任务程序在执行前,可以根据其数据量随机分配处理器的内核执行,并记录该处理器的内核的内核信息。
例如,某个任务程序的数据量为300M,若每个处理器的内核可以执行50M的数据量,则可以分配六个处理器的内核执行该任务程序。
需要说明的是,分配执行任务程序的处理器的内核,可以为同一台计算机的处理器的内核,也可以为不同计算机的处理器的内核。
或者,
子步骤S12,调用记录执行信息的日志信息;
子步骤S13,从所述日志信息中读取执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息。
执行任务程序的处理器的内核分配完成后,该处理器的内核可以执行所分配的某部分任务程序,若任务程序运行完成,则系统可以将执行信息(即执行任务程序相关的信息)记录到一个JSON(JavaScript Object Notation,一种数据交换格式)格式的日志中,在该日志中记载了该任务程序启动了多少个instance(实例),一般一个instance就对应了一个中央处理器的内核。
步骤102,计算所述一个或多个内核信息一一对应的一个或多个运行时间;
在步骤101和步骤102中,内核信息可以用于标识内核。
运行时间,可以为中央处理器的内核在执行所分配的某部分任务程序所消耗的时间。
在本申请实施例中,每个处理器的内核(以内核信息表征)可以具有自己的运行时间,即内核信息与运行时间是一一对应的。
在本申请的一种优选实施例中,步骤102可以包括如下子步骤:
子步骤S21,调用记录执行信息的日志信息;
子步骤S22,从所述日志信息中读取所述一个或多个内核一一对应的执行所述任务程序的一个或多个开始时间和一个或多个结束时间;
子步骤S23,计算所述一个或多个开始时间和所述一个或多个结束时间之差,获得一个或多个运行时间。
若任务程序运行完成,则系统可以将执行信息记录到一个JSON格式的日志中,在该日志中记载了该任务程序启动了多少个instance(实例),以及,每一个instance的开始时间和结束时间。
进一步而言,在计算机集群中,每一个instance在开始执行所分配的某部分任务程序的时候和结束执行所分配的某部分任务程序的时候,可以向计算机集群中的master(控制节点)汇报自己的开始时间和结束时间,则master(控制节点)可以把开始时间和结束时间记录到日志里中,计算开始时间和结束时间之差,则可以获得该instance运行时间,即内核的运行时间。
步骤103,根据所述一个或多个内核信息及一一对应的一个或多个运行时间计算复杂度;
在步骤103中,内核信息可以作为复杂度的计量单位。
复杂度,可以指任务程序的复杂程度。
通常,在运行环境相同的情况下,若任务程序的复杂度越高,则运行该任务程序所需要消耗的资源(如时间、处理器资源)就越大,成本就越高,反之,若任务程序的复杂度越低,则运行该任务程序所需要消耗的资源(如时间、处理器资源)就越小,成本就越低。
目前,通过关键字匹配计算SQL语句的复杂度的方式不够直观,计算机面向外部用户的时候,更多的把计算和CPU挂钩,而不是数据量。
因此,在本申请实施例中可以基于CPU的内核计算复杂度。
进一步而言,该复杂度(CU)可以以一个内核满负载运行一个标准时间所能提供的计算能力进行计量,即1CU=1core*标准时间。
标准时间是一个逻辑时间,实际可以为任意的时间,如一天、一小时等等。以一天(D)作为标准时间的示例,1CU=1core*D。
在本申请的一种优选实施例中,步骤103可以包括如下子步骤:
子步骤S31,计算所述一个或多个内核信息与一一对应的、换算为标准时间之后的一个或多个运行时间的乘积,获得一个或多个参考计量信息;
在实际应用中,若任务对象是独占内核进行执行的,则该内核无法运行其他程序,可以认为该内核是满负载运行的。
任务程序一般计算量较大,通常以天(D)作为标准时间,由于在计算机中一般以秒(s)作为时间单位,因此,需要对运行时间进行标准时间的换算。
在本申请实施例中,可以先计算内核信息与运行时间的乘积,再将运行时间换算成标准时间,以将乘积换算成参考计算信息;
也可以先将运行时间换算成标准时间,再计算内核信息与换算为标准时间之后的运行时间的乘积,获得参考计算信息。
例如,某个任务程序分配给A内核和B内核执行,其中,A内核运行了14400秒(s),B内核运行了7200秒(s),以天(D)作为标准时间,则参考计量信息分别为core(A)*14400s=core(A)*(1/6)D、core(B)*7200s=core(B)*(1/12)D。
子步骤S32,计算所述一个或多个参考计量信息之和,获得复杂度。
在实际应用中,由于计算机集群一般为整体配置(如硬件型号相同,不同计算机之间的性能差异较小,使用时间、环境相同,不同计算机之间的损耗差异较小),各计算机的内核计算能力之间的差异比较小,在可以接受的差异范围内。
为了减少计算量,可以认为各计算机的内核计算能力是相同的,即可以将一个或多个参考计量信息中的内核信息进行统一处理,而由于标准时间也是相同的,则可以计算统一处理之后的一个或多个参考计量信息的数值之和,获得复杂度。
例如,某个任务程序分配给A内核和B内核执行,A内核运行了14400秒(s),B内核运行了7200秒(s),以天(D)作为标准时间,若参考计量信息中的内核信息相同,以core表示,则A内核的参考计量信息为core*(1/6)D、B内核的参考计量信息为core*(1/12)D,则复杂度=core*(1/6)D+core*(1/12)D=0.25core*D=0.25CU,其表示的意思为该任务程序的复杂度为在该计算机集群的内核中执行时需要消耗0.25CU。
对于单台计算机、计算机集群非整体配置(如硬件型号不同,导致不同计算机之间的性能差异较大,使用时间、环境不同,导致不同计算机之间的损耗差异较大)等情况下,各计算机的内核计算能力之间的差异比较大。
为了提高复杂度的精确度,可以认为参考计量信息中的内核信息是不相同的,及可以以该参考计量信息的逻辑之和作为复杂度。
例如,某个任务程序分配给A内核和B内核执行,A内核运行了14400秒(s),B内核运行了7200秒(s),以天(D)作为标准时间,若参考计量信息中的内核信息不同,则A内核的参考计量信息为core(A)*(1/6)D=1/6CU(A)、B内核的参考计量信息为core(B)*(1/12)D=1/12CU(B),则复杂度=1/6CU(A)+1/12CU(B),其表示的意思为该任务程序的复杂度为在A内核中执行时需要消耗1/6CU,同时,在B内核执行时需要消耗1/12CU。
进一步而言,为了在各计算机的内核计算能力之间的差异比较大的情况下减少计算量,可以将各参考计量信息中的内核信息按照计算能力配置计算能力权重,再计算配置计算能力权重之后的参考计量信息的数值之加,作为复杂度。
在一个实施例中,可以预先在各内核中独立运行逻辑相同的参考程序,按照运行时间配置计算能力权重,运行时间越短,权重越高,运行时间越长,权重越低。
例如,在A内核和B内核分别独立运行参考程序,若A内核运行了2小时,B内核运行了1小时,则A内核的运算能力为B内核的一半,以B内核的权重为1,则A内核的权重为0.5。
则配置权重后的复杂度=1/6CU(A)+1/12CU(B)=0.5*1/6CU(A)+1/12CU(A)=1/6CU(B),其表示的意思为该任务程序的复杂度为在B内核执行时需要消耗1/6CU。
步骤104,根据所述复杂度进行业务处理。
在不同的领域中,可以具有不同的业务,该业务为体现该领域特性的事件。
例如,在通信领域中,业务处理可以为通信数据的传输过程;在新闻媒体行业中,业务处理可以为新闻数据的发布过程;在程序测试领域中,业务处理可以为程序的测试优化过程;在电子商务领域中,业务处理可以为执行成本的计算过程。
需要说明的是,在不同的领域中,虽然业务处理承载领域特性而有所不同,但其本质是对数据(例如,字符、文本数据、图像数据、音频数据、视频数据等等)的处理过程。
在本申请的一种优选实施例中,步骤104可以包括如下子步骤:
子步骤S41,获取所述一个或多个内核信息一一对应的一个或多个权重;
子步骤S42,采用所述复杂度和所述一个或多个权重计算执行成本。
在实际应用中,不同的计算机除了内核的计算能力可能存在差异之外,还可能存在其他方面的差异。
例如,某新配置的计算机性能较好,成本较高,应用该计算机的内核执行任务程序时成本也较高。
在本发明实施例中,可以对复杂度配置权重,综合体现执行任务程序时的执行成本,可以用于衡量不同内核之间执行相同的任务程序的成本情况。
需要说明的是,本领域技术人员可以根据实际需求对内核(内核信息表征,为标识内核的作用)配置相应的权重。
例如,在电子商务领域中,网站可以提供计算机集群的计算能力给其他用户,则该该权重可以表征为定价,如租用该计算机集群执行程序任务时所需的价格,可以以1CU划分定价,也可以以其他方式划分定价。
在本申请实施例的一种优选示例中,子步骤S42可以包括如下子步骤:
子步骤S421,对所述一个或多个参考计量信息之和配置所述权重,获得执行成本。
在认为各计算机的内核计算能力相同等情况下,则该权重也可以认为是相同的,可以统一计算执行成本。
例如,某个任务程序分配给A内核和B内核执行,复杂度为0.25CU,若A内核的权重和B内核的权重均为4,则执行成本=0.25*4=1。
在本申请实施例的另一种优选示例中,子步骤S42可以包括如下子步骤:
子步骤S422,对所述一个或多个参考计量信息配置一一对应的一个或多个权重;
子步骤S423,计算配置权重后的所述一个或多个参考计量信息的和,获得执行成本。
计算配置权重后的所述一个或多个标准计量信息的和,获得执行成本。
在认为各计算机的内核计算能力存在差异等情况下,可以对复杂度中各参考计量信息配置相应的权重,计算执行成本。
例如,某个任务程序分配给A内核和B内核执行,复杂度为1/6CU(A)+1/12CU(B),若A内核的权重为3、B内核的权重均为4,则执行成本=(1/6)*3+(1/12)*4=0.83。
在本申请的另一种优选实施例中,步骤104可以包括如下子步骤:
子步骤S43,按照所述复杂度对所述任务程序进行优化处理。
在本申请实施例中,可以按照复杂度的情况对任务程序进行优化。
一般而言,复杂度较高,超过了一定的阈值,则可以表明该任务程序逻辑较为复杂,并未达标,需要继续进行优化。
例如,对某个任务程序调整了某个底层参数,如控制启动的实例数不超过某一个值,就可以给系统带来巨大的优化,大大提高计算性能,运行时间也会大大减少,计算出的复杂度也会随之下降,认为当前优化处理是达标的,无需再继续进行优化处理,避免了判断优化失败时导致的资源浪费,大大提高了优化处理效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图2,示出了本申请的一种基于复杂度的业务处理装置实施例的结构框图,具体可以包括如下模块:
内核信息确定模块201,用于任务程序执行完成时,确定执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息;
运行时间计算模块202,用于计算所述一个或多个内核信息一一对应的一个或多个运行时间;
复杂度计算模块203,用于根据所述一个或多个内核信息及一一对应的一个或多个运行时间计算复杂度;
业务处理模块204,用于根据所述复杂度进行业务处理。
在本申请的一种优选实施例中,所述内核信息确定模块201可以包括如下子模块:
内核信息提取子模块,用于提取在任务程序执行前,分配执行所述任务程序的一个或多个内核一一对应的内核信息;
或者,
第一日志信息调用子模块,用于调用记录执行信息的日志信息;
内核信息读取子模块,用于从所述日志信息中读取执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息。
在本申请的一种优选实施例中,所述运行时间计算模块202可以包括如下子模块:
第二日志信息调用子模块,用于调用记录执行信息的日志信息;
时间读取子模块,用于从所述日志信息中读取所述一个或多个内核一一对应的执行所述任务程序的一个或多个开始时间和一个或多个结束时间;
时间差计算子模块,用于计算所述一个或多个开始时间和所述一个或多个结束时间之差,获得一个或多个运行时间。
在具体实现中,所述复杂度可以以一个内核满负载运行一个标准时间所能提供的计算能力进行计量。
在本申请的一种优选实施例中,所述复杂度计算模块203可以包括如下子模块:
参考计量信息计算子模块,用于计算所述一个或多个内核信息与一一对应的、换算为标准时间之后的一个或多个运行时间的乘积,获得一个或多个参考计量信息;
参考计量信息和计算子模块,用于计算所述一个或多个参考计量信息之和,获得复杂度。
在本申请的一种优选实施例中,所述参考计量信息和计算子模块可以包括如下子模块:
统一处理子模块,用于将所述一个或多个参考计量信息中的内核信息进行统一处理;
算术计算子模块,用于计算统一处理之后的一个或多个参考计量信息的数值之和,获得复杂度。
在本申请的一种优选实施例中,所述业务处理模块204可以包括如下子模块:
权重获取子模块,用于获取所述一个或多个内核信息一一对应的一个或多个权重;
执行成本计算子模块,用于采用所述复杂度和所述一个或多个权重计算执行成本。
在本申请的一种优选实施例中,所述执行成本计算子模块可以包括如下子模块:
第一权重配置子模块,用于对所述一个或多个参考计量信息之和配置所述权重,获得执行成本;
或者,
第二权重配置子模块,用于对所述一个或多个参考计量信息配置一一对应的一个或多个权重;
权重和计算子模块,用于计算配置权重后的所述一个或多个参考计量信息的和,获得执行成本。
在本申请的一种优选实施例中,所述业务处理模块204可以包括如下子模块:
优化子模块,用于按照所述复杂度对所述任务程序进行优化处理。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种基于复杂度的业务处理方法和一种基于复杂度的业务处理装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (18)
1.一种基于复杂度的业务处理方法,其特征在于,包括:
当任务程序执行完成时,确定执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息;
计算所述一个或多个内核信息一一对应的一个或多个运行时间;
根据所述一个或多个内核信息及一一对应的一个或多个运行时间计算所述任务程序的复杂度;
根据所述复杂度进行业务处理。
2.根据权利要求1所述的方法,其特征在于,所述当任务程序执行完成时,确定执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息包括:
提取在任务程序执行前,分配执行所述任务程序的一个或多个内核一一对应的内核信息;
或者,
调用记录执行信息的日志信息;
从所述日志信息中读取执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息。
3.根据权利要求2所述的方法,其特征在于,所述计算所述一个或多个内核信息一一对应的一个或多个运行时间的步骤包括:
调用记录执行信息的日志信息;
从所述日志信息中读取所述一个或多个内核一一对应的执行所述任务程序的一个或多个开始时间和一个或多个结束时间;
计算所述一个或多个开始时间和所述一个或多个结束时间之差,获得一个或多个运行时间。
4.根据权利要求1或2或3所述的方法,其特征在于,所述复杂度以一个内核满负载运行一个标准时间所能提供的计算能力进行计量。
5.根据权利要求4所述的方法,其特征在于,所述根据所述一个或多个内核信息及一一对应的一个或多个运行时间计算所述任务程序的复杂度的步骤包括:
计算所述一个或多个内核信息与一一对应的、换算为标准时间之后的一个或多个运行时间的乘积,获得一个或多个参考计量信息;
计算所述一个或多个参考计量信息之和,获得所述任务程序的复杂度。
6.根据权利要求5所述的方法,其特征在于,所述计算所述一个或多个参考计量信息之和,获得所述任务程序的复杂度的步骤包括:
将所述一个或多个参考计量信息中的内核信息进行统一处理;
计算统一处理之后的一个或多个参考计量信息的数值之和,获得所述任务程序的复杂度。
7.根据权利要求5或6所述的方法,其特征在于,所述根据所述复杂度进行业务处理的步骤包括:
获取所述一个或多个内核信息一一对应的一个或多个权重;
采用所述复杂度和所述一个或多个权重计算执行成本。
8.根据权利要求7所述的方法,其特征在于,所述采用所述复杂度和所述一个或多个权重计算执行成本的步骤包括:
对所述一个或多个参考计量信息之和配置所述权重,获得执行成本;
或者,
对所述一个或多个参考计量信息配置一一对应的一个或多个权重;
计算配置权重后的所述一个或多个参考计量信息的和,获得执行成本。
9.根据权利要求1或2或3或5或6所述的方法,其特征在于,所述根据所述复杂度进行业务处理的步骤包括:
按照所述复杂度对所述任务程序进行优化处理。
10.一种基于复杂度的业务处理装置,其特征在于,包括:
内核信息确定模块,用于任务程序执行完成时,确定执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息;
运行时间计算模块,用于计算所述一个或多个内核信息一一对应的一个或多个运行时间;
复杂度计算模块,用于根据所述一个或多个内核信息及一一对应的一个或多个运行时间计算所述任务程序的复杂度;
业务处理模块,用于根据所述复杂度进行业务处理。
11.根据权利要求10所述的装置,其特征在于,所述内核信息确定模块包括:
内核信息提取子模块,用于提取在任务程序执行前,分配执行所述任务程序的一个或多个内核一一对应的内核信息;
或者,
第一日志信息调用子模块,用于调用记录执行信息的日志信息;
内核信息读取子模块,用于从所述日志信息中读取执行所述任务程序的一个或多个内核一一对应的一个或多个内核信息。
12.根据权利要求11所述的装置,其特征在于,所述运行时间计算模块包括:
第二日志信息调用子模块,用于调用记录执行信息的日志信息;
时间读取子模块,用于从所述日志信息中读取所述一个或多个内核一一对应的执行所述任务程序的一个或多个开始时间和一个或多个结束时间;
时间差计算子模块,用于计算所述一个或多个开始时间和所述一个或多个结束时间之差,获得一个或多个运行时间。
13.根据权利要求10或11或12所述的装置,其特征在于,所述复杂度以一个内核满负载运行一个标准时间所能提供的计算能力进行计量。
14.根据权利要求13所述的装置,其特征在于,所述复杂度计算模块包括:
参考计量信息计算子模块,用于计算所述一个或多个内核信息与一一对应的、换算为标准时间之后的一个或多个运行时间的乘积,获得一个或多个参考计量信息;
参考计量信息和计算子模块,用于计算所述一个或多个参考计量信息之和,获得所述任务程序的复杂度。
15.根据权利要求14所述的装置,其特征在于,所述参考计量信息和计算子模块包括:
统一处理子模块,用于将所述一个或多个参考计量信息中的内核信息进行统一处理;
算术计算子模块,用于计算统一处理之后的一个或多个参考计量信息的数值之和,获得所述任务程序的复杂度。
16.根据权利要求14或15所述的装置,其特征在于,所述业务处理模块包括:
权重获取子模块,用于获取所述一个或多个内核信息一一对应的一个或多个权重;
执行成本计算子模块,用于采用所述复杂度和所述一个或多个权重计算执行成本。
17.根据权利要求16所述的装置,其特征在于,所述执行成本计算子模块包括:
第一权重配置子模块,用于对所述一个或多个参考计量信息之和配置所述权重,获得执行成本;
或者,
第二权重配置子模块,用于对所述一个或多个参考计量信息配置一一对应的一个或多个权重;
权重和计算子模块,用于计算配置权重后的所述一个或多个参考计量信息的和,获得执行成本。
18.根据权利要求10或11或12或14或15所述的装置,其特征在于,所述业务处理模块包括:
优化子模块,用于按照所述复杂度对所述任务程序进行优化处理。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510314346.3A CN106293890B (zh) | 2015-06-09 | 2015-06-09 | 一种基于复杂度的业务处理方法和装置 |
PCT/CN2016/084443 WO2016197853A1 (zh) | 2015-06-09 | 2016-06-02 | 一种基于复杂度的业务处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510314346.3A CN106293890B (zh) | 2015-06-09 | 2015-06-09 | 一种基于复杂度的业务处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106293890A CN106293890A (zh) | 2017-01-04 |
CN106293890B true CN106293890B (zh) | 2019-11-05 |
Family
ID=57502991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510314346.3A Active CN106293890B (zh) | 2015-06-09 | 2015-06-09 | 一种基于复杂度的业务处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106293890B (zh) |
WO (1) | WO2016197853A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110675236A (zh) * | 2019-08-27 | 2020-01-10 | 阿里巴巴集团控股有限公司 | 基于分布式的税费计算方法以及装置 |
CN111786801B (zh) * | 2019-11-26 | 2023-08-04 | 北京京东尚科信息技术有限公司 | 一种基于数据流量进行计费的方法和装置 |
CN113467959A (zh) * | 2021-09-06 | 2021-10-01 | 西安芯瞳半导体技术有限公司 | 应用于gpu的确定任务复杂度的方法、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103080900A (zh) * | 2010-09-03 | 2013-05-01 | 西门子公司 | 并行化自动控制程序的方法及编译器 |
CN103164321A (zh) * | 2013-03-20 | 2013-06-19 | 华为技术有限公司 | 中央处理器占用率测量方法及装置 |
KR101341562B1 (ko) * | 2011-12-15 | 2013-12-16 | 경상대학교산학협력단 | 변동하는 계산량을 갖는 실시간 작업을 위한 단일 코어 프로세서의 에너지 효율적 스케줄링 방법 |
CN103473134A (zh) * | 2013-09-23 | 2013-12-25 | 哈尔滨工程大学 | 一种异构多核处理器的依赖任务调度方法 |
CN103729246A (zh) * | 2013-12-31 | 2014-04-16 | 浪潮(北京)电子信息产业有限公司 | 一种任务调度方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2800271A1 (en) * | 2010-09-07 | 2012-03-15 | Ewha University-Industry Collaboration Foundation | System test method |
CN102221988B (zh) * | 2011-05-23 | 2013-10-30 | 北京工商大学 | 一种快速的指令级处理器能耗估算方法 |
KR101416822B1 (ko) * | 2012-12-28 | 2014-07-09 | 경상대학교산학협력단 | 변동하는 계산량을 갖는 복수개의 주기적 실시간 작업을 위한 멀티 코어 프로세서의 누수 전력 소모를 고려한 확률적 최소 전력 스케줄링 방법 |
CN103338228B (zh) * | 2013-05-30 | 2016-12-28 | 江苏大学 | 基于双加权最小连接算法的云计算负载均衡调度算法 |
CN103399800B (zh) * | 2013-08-07 | 2016-04-13 | 山东大学 | 基于Linux并行计算平台的动态负载均衡方法 |
-
2015
- 2015-06-09 CN CN201510314346.3A patent/CN106293890B/zh active Active
-
2016
- 2016-06-02 WO PCT/CN2016/084443 patent/WO2016197853A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103080900A (zh) * | 2010-09-03 | 2013-05-01 | 西门子公司 | 并行化自动控制程序的方法及编译器 |
KR101341562B1 (ko) * | 2011-12-15 | 2013-12-16 | 경상대학교산학협력단 | 변동하는 계산량을 갖는 실시간 작업을 위한 단일 코어 프로세서의 에너지 효율적 스케줄링 방법 |
CN103164321A (zh) * | 2013-03-20 | 2013-06-19 | 华为技术有限公司 | 中央处理器占用率测量方法及装置 |
CN103473134A (zh) * | 2013-09-23 | 2013-12-25 | 哈尔滨工程大学 | 一种异构多核处理器的依赖任务调度方法 |
CN103729246A (zh) * | 2013-12-31 | 2014-04-16 | 浪潮(北京)电子信息产业有限公司 | 一种任务调度方法和装置 |
Non-Patent Citations (1)
Title |
---|
适应多核处理器的任务调度研究;赵磊;《中国优秀硕士学位论文全文数据库信息科技辑》;20110615(第06期);第1-43页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2016197853A1 (zh) | 2016-12-15 |
CN106293890A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10951552B2 (en) | Generation of a chatbot interface for an application programming interface | |
CN106897205B (zh) | 一种测试数据生成方法及装置 | |
CN108304250A (zh) | 用于确定运行机器学习任务的节点的方法和装置 | |
CN106411970B (zh) | 一种基于服务调用的故障处理方法、装置和系统 | |
CN109358965A (zh) | 云计算集群资源调度方法、介质、装置和计算设备 | |
CN103713935A (zh) | 一种在线管理Hadoop集群资源的方法和装置 | |
US20220179763A1 (en) | Log-based status modeling and problem diagnosis for distributed applications | |
CN106293890B (zh) | 一种基于复杂度的业务处理方法和装置 | |
CN113495797A (zh) | 一种消息队列及消费者动态创建方法及系统 | |
CN108287876B (zh) | 支持多种格式的电能质量数据服务质量检测方法和装置 | |
CN105550209A (zh) | 一种资源处理方法及装置 | |
US20170344454A1 (en) | Determining dynamic statistics based on key value patterns | |
US10565035B2 (en) | Modifying a device based on an annotated time series of sensor readings | |
US11221938B2 (en) | Real-time collaboration dynamic logging level control | |
US11627193B2 (en) | Method and system for tracking application activity data from remote devices and generating a corrective action data structure for the remote devices | |
US20220318671A1 (en) | Microservice compositions | |
US9853690B1 (en) | Generating high resolution inferences in electrical networks | |
JP6291565B2 (ja) | 分型インフラストラクチャのインベントリサービス | |
CN115599781A (zh) | 调用逻辑展示方法、业务系统以及电子设备 | |
Hass et al. | Workload deployment and configuration reconciliation at scale in kubernetes-based edge-cloud continuums | |
WO2021234474A1 (en) | Rule distribution across instances of rules engine | |
CN113672660A (zh) | 一种数据查询方法、装置及设备 | |
US11080632B2 (en) | Optimization of steady state cost for multi-site high availability application deployment of management and managed intrastructure | |
US11882124B1 (en) | Account integration with an event-driven application programing interface call manager | |
US11599690B2 (en) | Wafer asset modeling using language processing methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |