买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种编译资源调度方法、计算机及计算机可读存储介质_努比亚技术有限公司_201711434991.4 

申请/专利权人:努比亚技术有限公司

申请日:2017-12-26

公开(公告)日:2021-11-19

公开(公告)号:CN108279976B

主分类号:G06F9/50(20060101)

分类号:G06F9/50(20060101);G06F8/41(20180101)

优先权:

专利状态码:有效-授权

法律状态:2021.11.19#授权;2018.08.07#实质审查的生效;2018.07.13#公开

摘要:本发明公开了一种编译资源调度方法,所述方法包括:接收对多个源代码执行的编译操作;按照预设规则将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。此外,本发明还公开一种计算机及计算机可读存储介质。本实施例中,所述编译资源调度方法能够按照预设规则将多个源代码进行分组,并从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,这样,所述方法能够充分利用编译资源,提高编译资源的利用率。

主权项:1.一种编译资源调度方法,应用于计算机,其特征在于,所述方法包括:接收对多个源代码执行的编译操作;按照预设规则将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存;其中,所述按照预设规则将所述多个源代码分为至少一组,包括:根据所述多个源代码分别支持的编译方式和用户输入的分组操作将所述多个源代码分为至少一组;其中,所述编译方式包括多线程编译方式以及单线程编译方式;所述用户输入的分组操作为将具有相同的编译过程文件的源代码分为一组的分组操作;其中,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:使用编译器对源代码特征进行提取,根据提取到的源代码特征确定源代码支持的线程数量;根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。

全文数据:一种编译资源调度方法、计算机及计算机可读存储介质技术领域[0001]本发明涉及计算机技术领域,尤其涉及一种编译资源调度方法、计算机及计算机可读存储介质。背景技术[0002]随着电子技术的不断发展,电子产品的功能越来越强大,能够实现各种功能的应用程序均是由源代码编译而来,现有技术中,源代码的编译均是在单一的计算机中完成,由于计算机的资源有限,且不同的源代码的编译的复杂程度不相同,容易导致编译资源的利用率低。发明内容[0003]有鉴于此,本发明提出一种编译资源调度方法、计算机及计算机可读存储介质,以解决上述技术问题。[0004]首先,为实现上述目的,本发明提出一种编译资源调度方法,应用于计算机,所述方法包括:[0005]接收对多个源代码执行的编译操作;[0006]按照预设规则将所述多个源代码分为至少一组;[0007]获取每个源代码对应的编译环境;[0008]从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。[0009]可选地,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源之后,所述方法还包括:[0010]控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。[0011]可选地,所述控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码之后,所述方法还包括:[0012]编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。[0013]可选地,所述按照预设规则将所述多个源代码分为至少一组,包括:[0014]根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。[0015]可选地,所述编译方式包括多线程编译方式以及单线程编译方式。[0016]可选地,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:[0017]根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。'[0018]可选地,所述按照预设规则将所述多个源代码分为至少一组,包括:[0019]接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。[0020]可选地,所述接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组,包括:[0021]接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;[0022]基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。[0023]进一步地,为实现上述目的,本发明还提供一种计算机,所述计算机包括存储器、至少一个处理器及存储在所述存储器上并可在所述至少一个处理器执行的至少一个程序,所述至少一个程序被所述至少一个处理器执行时实现上述任一项所述的方法中的步骤。[0024]进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行的至少一个程序,所述至少一个程序被所述计算机执行时使所述计算机执行上述方法中的步骤。[0025]相较于现有技术,本发明所提出的编译资源调度方法接收对多个源代码执行的编译操作;按照预设规则将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本实施例中,所述编译资源调度方法能够按照预设规则将多个源代码进行分组,并从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,这样,所述方法能够充分利用编译资源,提高编译资源的利用率。附图说明[0026]图1是本发明实施例提供的一种编译资源调度方法的流程示意图;[0027]图2是本发明实施例提供的另一种编译资源调度方法的流程示意图;[0028]图3是本发明实施例提供的另一种编译资源调度方法的流程示意图;[0029]图4是本发明实施例提供的另一种编译资源调度方法的流程示意图;[0030]图5是本发明实施例提供的一种计算机的结构示意图;[0031]图6是本发明实施例提供的一种计算机的功能模块示意图;[0032]图7是本发明实施例提供的另一种计算机的功能模块示意图;[0033]图8是本发明实施例提供的另一种计算机的功能模块示意图;[0034]图9是本发明实施例提供的另一种计算机的功能模块示意图;[0035]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式[0036]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0037]在后续的描述中,使用用于表示元件的诸如“模块,,、“部件,,或“单元,,的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块,,、“部件,,或“单元,,可以混合地使用。_8]麵g1,目提本挪实酬提侧—种编赖翻度方法_聽翻,臟方法应用于一计算机中,如图1所示,所述方法包括:[0039]步骤101、接收对多个源代码执行的编译操作。[0040]该步骤中,所述方法接收对多个源代码执行的编译操作。可以理解的是,该步骤中,所述方法_可以是接收一个用户对多个源代码执行的编译操作,也可以是接收多个用户对源代码执行的编译操作,其中,每个用户对至少一个源代码执行编译操作。所述多个源代巧可以相同,也可以不同。可以理解的是,若所述方法接收到的是一个用户对多个源代码执行的编译操作,所述多个源代码为不同的源代码;若所述方法接收到的是多个用户对多个源代码执行的编译操作,所述多个源代码可以为互不相同的源代码,也可以包括相同的至少两个源代码,本发明实施例对此不作具体限定。[0041]步骤102、按照预设规则将所述多个源代码分为至少一组。[0042]该步骤中,所述方法按照预设规则将所述多个源代码分为至少一组,所述预设规则可以是根据用户的分组操作,也可以通过识别所述多个源代码的内容进行自动分组,本发明实施例对此不作具体限定。可以理解的是,在本发明一些实施例中,所述方法可以结合用户的分组操作以及识别到的源代码的内容两者一起对所述多个源代码进行分组。[0043]本发明一些实施例中,用户可以对所述多个源代码进行查看,并对所述多个源代码执行分组操作,所述方法接收用户的分组操作,并基于所述分组操作对所述多个源代码进行分组。具体地,用户可以将具有相同的编译过程文件的源代码分为一组,所述方法接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作,并基于所述分组操作,对所述多个源代码进行分组,其中,每组源代码中的源代码具有相同的编译过程文件。[0044]本发明另一些实施例中,所述方法可以通过识别所述多个源代码的具体内容的方式对所述多个源代码进行自动分组。具体地,所述方法可以判断所述多个源代码分别支持的编译方式,然后根据所述多个源代码分别支持的编译方式将所述多个源代码进行分组。所述编译方式包括多线程编译方式以及单线程编译方式,举例而言,所述方法可以根据所述多个源代码分别支持的线程数量对所述多个源代码进行分组,例如可以将支持线程数量相同的源代码分为一组。进一步地,所述方法还可以根据所述多个源代码分别支持的线程数量以及每个源代码的每个线程的线程长度对所述多个源代码进行分组。该实施例中,所述方法可以通过使用编译器对源代码特征进行提取,然后根据提取到的源代码特征确定源代码支持的线程数量。[0045]本发明其他实施例中,所述方法可以结合用户选择以及自动分组两种方式一起对所述多个源代码进行分组。例如所述方法可以将支持的线程数量相同,且具有相同的编译过程文件分为同一组,也可以结合所述自动分组以及用户的其他选择方式两者结合对所述多个源代码进行分组,本发明实施例对此不作具体限定。[0046]步骤103、获取每个源代码对应的编译环境。[0047]该步骤中,所述方法获取每个源代码对应的编译环境。具体地,所述方法可以读取每个源代码的内容,然后根据每个源代码的内容确定每个源代码的编译环境,例如,可以通过使用编译器读取每个源代码的内容。可以理解的是,所述编译环境为源代码运行的不同系统,或者相同系统的不同版本。[0048]步骤104、从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。[0049]该步骤中,所述方法从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本发明实施例中,所述资源池中包括多个编译资源,即多个编译器以及多个内存,所述资源池可以理解成有多个计算机组成的资源池,例如由多个计算机组成的超级计算机。[0050]具体地,对于一组仅支持单线程的源代码,所述方法可以从所述资源池中为该组源代码分配支持该组源代码的编译环境的处理器进行单进程单线程编译。对于支持多线程的一组源代码,所述方法可以从所述资源池中为该组源代码分配支持该组源代码的编译环境的处理器进行多线程并行编译。进一步地,所述方法还可以根据每个源代码的线程长度动态分配编译任务,这样,能够尽量少地让处理器进行不同线程的切换,提供处理器的利用率,提升编译速度。此外,对于具有相同编译过程文件的一组源代码,相同过程的文件源代码可以仅执行一次,得到对应的编译过程文件,其他源代码可以直接使用该编译过程文件,而不需要对相同的源代码进行重复编译,可以有效减轻处理器的编译任务,提升编译速度,提高编译性能。[0051]本实施例中,所述编译资源调度方法接收对多个源代码执行的编译操作;按照预设规则将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本实施例中,所述编译资源调度方法能够按照预设规则将多个源代码进行分组,并从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,这样,所述方法能够充分利用编译资源,提高编译资源的利用率。[0052]参见图2,图2是本发明实施例提供的另一种编译资源调度方法的流程示意图,如图2所示,所述方法包括:[0053]步骤201、接收对多个源代码执行的编译操作。[0054]步骤202、按照预设规则将所述多个源代码分为至少一组。[0055]步骤203、获取每个源代码对应的编译环境。[0056]步骤204、从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。[0057]所述步骤2〇1至步骤2〇4与本发明图1所示的实施例中的步骤丨〇丨至步骤1〇4相同,此处不再赘述。[0058]步骤205、控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。[0059]该步骤中,所述方法控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。具体地,所述方法将每组源代码进行排队,并控制为该组源代码分配的编译资源编译该组源代码。这样,所述方法能够在编译资源对源代码进行编译之前将多个源代码进行分组排队,避免在编译过程还需要确定需要编译的源代码的情况,有效提高编译资源的利用率。[0060]可选地,所述控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码之后,所述方法还包括:[0061]编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接link。[0062]该实施例中,所述方法在编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。具体地,所述一个处理器可以是为编译该组源代码的处理器,即当一个处理器A无论是单线程还是多线程编译一组源代码,当该组源代码生成多个过程文件后,所述方法控制该处理器A以单线程对所述多个过程文件进行链接,即将该处理器A由多线程编译方式调节为单线程编译方式对多个过程文件进行链接。所述一个处理器也可以不为编译该组源代码的处理器,即当处理器A编译一组源代码生成多个过程文件后,所述方法可以控制处理器B使用单线程对所述多个过程文件进行链接。本发明一些实施例中,所述使用单线程为所述多个过程文件进行链接的处理器为超频处理器。[0063]参见图3,图3是本发明实施例提供的另一种编译资源调度方法的流程示意图,如图3所示,所述方法包括:[0064]步骤301、接收对多个源代码执行的编译操作。[0065]该步骤中,所述方法接收对多个源代码执行的编译操作。可以理解的是,该步骤中,所述方法可以是接收一个用户对多个源代码执行的编译操作,也可以是接收多个用户对源代码执行的编译操作,其中,每个用户对至少一个源代码执行编译操作。所述多个源代码可以相同,也可以不同。可以理解的是,若所述方法接收到的是一个用户对多个源代码执行的编译操作,所述多个源代码为不同的源代码;若所述方法接收到的是多个用户对多个源代码执行的编译操作,所述多个源代码可以为互不相同的源代码,也可以包括相同的至少两个源代码,本发明实施例对此不作具体限定。[0066]步骤3〇2、根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。[0067]该实施例中,所述方法可以通过识别所述多个源代码的具体内容的方式对所述多个源代码进行自动分组。具体地,所述方法可以判断所述多个源代码分别支持的编译方式,然后根据所述多个源代码分别支持的编译方式将所述多个源代码进行分组。所述编译方式包括多线程编译方式以及单线程编译方式,举例而言,所述方法可以根据所述多个源代码分别支持的线程数量对所述多个源代码进行分组,例如可以将支持线程数量相同的源代码分为一组。进一步地,所述方法还可以根据所述多个源代码分别支持的线程数量以及每个源代码的每个线程的线程长度对所述多个源代码进行分组。该实施例中,所述方法可以通过使用编译器对源代码特征进行提取,然后根据提取到的源代码特征确定源代码支持的线程数量。[0068]步骤303、获取每个源代码对应的编译环境。[0069]该步骤中,所述方法获取每个源代码对应的编译环境。具体地,所述方法可以读取每个源代码的内容,然后根据每个源代码的内容确定每个源代码的编译环境,例如,可以通过使用编译器知:取每个源代码的内谷。可以理解的是,所述编译环境为源代码运行的不同系统,或者相同系统的不同版本。[0070]步骤304、从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。[0071]该步骤中,所述方法从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本发明实施例中,所述资源池中包括多个编译资源,即多个编译器以及多个内存,所述资源池可以理解成有多个计算机组成的资源池,例如由多个计算机组成的超级计算机。[0072]具体地,对于具有相同编译过程文件的一组源代码,相同过程的文件源代码可以仅执行一次,得到对应的编译过程文件,其他源代码可以直接使用该编译过程文件,而不需要对相同的源代码进行重复编译,可以有效减轻处理器的编译任务,提升编译速度,提高编译性能。[0073]可选地,所述编译方式包括多线程编译方式以及单线程编译方式。[0074]可选地,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:[0075]根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。[0076]本实施例中,所述编译资源调度方法接收对多个源代码执行的编译操作;根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本实施例中,所述编译资源调度方法能够根据所述多个源代码分别支持的编译方式将多个源代码进行分组,并从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,这样,所述方法能够充分利用编译资源,提高编译资源的利用率。[0077]参见图4,图4是本发明实施例提供的另一种编译资源调度方法的流程示意图,如图4所示,所述方法包括:[0078]步骤401、接收对多个源代码执行的编译操作。[0079]该步骤中,所述方法接收对多个源代码执行的编译操作。可以理解的是,该步骤中,所述方法可以是接收一个用户对多个源代码执行的编译操作,也可以是接收多个用户对源代码执行的编译操作,其中,每个用户对至少一个源代码执行编译操作。所述多个源代码可以相同,也可以不同。可以理解的是,若所述方法接收到的是一个用户对多个源代码执行的编译操作,所述多个源代码为不同的源代码;若所述方法接收到的是多个用户对多个源代码执行的编译操作,所述多个源代码可以为互不相同的源代码,也可以包括相同的至少两个源代码,本发明实施例对此不作具体限定。[0080]步骤402、接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。[0081]该实施例中,用户可以对所述多个源代码进行查看,并对所述多个源代码执行分组操作,所述方法接收用户的分组操作,并基于所述分组操作对所述多个源代码进行分组。具体地,用户可以将具有相同的编译过程文件的源代码分为一组,所述方法接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作,并基于所述分组操作,对所述多个源代码进行分组,其中,每组源代码中的源代码具有相同的编译过程文件。[0082]步骤4〇3、获取每个源代码对应的编译环境。[0083]该步骤中,所述方法获取每个源代码对应的编译环境。具体地,所述方法可以读取每个源代码的内容,然后根据每个源代码的内容确定每个源代码的编译环境,例如,可以通过使用编译器读取每个源代码的内容。可以理解的是,所述编译环境为源代码运行的不同系统,或者相同系统的不同版本。[0084]步骤404、从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。[0085]该步骤中,所述方法从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本发明实施例中,所述资源池中包括多个编译资源,即多个编译器以及多个内存,所述资源池可以理解成有多个计算机组成的资源池,例如由多个计算机组成的超级计算机。[0086]具体地,对于具有相同编译过程文件的一组源代码,相同过程的文件源代码可以仅执行一次,得到对应的编译过程文件,其他源代码可以直接使用该编译过程文件,而不需要对相同的源代码进行重复编译,可以有效减轻处理器的编译任务,提升编译速度,提高编译性能。[0087]可选地,所述接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组,包括:[0088]接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;[0089]基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。[0090]本实施例中,所述编译资源调度方法接收对多个源代码执行的编译操作;接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本实施例中,所述编译资源调度方法能够根据用户输入的分组操作将多个源代码进行分组,并从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,这样,所述方法能够充分利用编译资源,提髙编译资源的利用率。[0091]请参考图5,图5是本发明实施提供的一种计算机的结构示意图,如图5所示,该网络侧设备包括:处理器5〇0、收发机510、存储器520、用户接口530和总线接口,其中:[0092]处理器5〇0,用于读取存储器520中的程序,执行下列过程:[0093]接收对多个源代码执行的编译操作;[0094]按照预设规则将所述多个源代码分为至少一组;[0095]获取每个源代码对应的编译环境;[0096]从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。[0097]其中,收发机510,用于在处理器500的控制下接收和发送数据。[0098]在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器500代表的一个或多个处理器和存储器520代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机510可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口530还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。[0099]处理器500负责管理总线架构和通常的处理,存储器520可以存储处理器500在执行操作时所使用的数据。[0100]可选地,所述处理器5〇〇执行从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源之后,还可实现如下步骤:[0101]控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。[0102]可选地,所述处理器5〇〇执行控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码之后,还可实现如下步骤:[0103]编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。[0104]可选地,所述处理器5〇〇执行的按照预设规则将所述多个源代码分为至少一组,包括:[0105]根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。[0106]可选地,所述编译方式包括多线程编译方式以及单线程编译方式。[0107]可选地,所述处理器500执行的从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:[0108]根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。[0109]可选地,所述处理器500执行的按照预设规则将所述多个源代码分为至少一组,包括:[0110]接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。[0111]可选地,所述处理器500执行的接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组,包括:[0112]接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;[0113]基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。[0114]参阅图6,图6是本发明实施例提供的一种计算机的功能模块示意图,如图6所示,所述计算机600包括:[0115]接收模块601,用于接收对多个源代码执行的编译操作;[0116]分组模块6〇2,用于按照预设规则将所述多个源代码分为至少一组;[0117]获取模块603,用于获取每个源代码对应的编译环境;[0118]分配模块604,用于从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。[0119]可选地,参见图7,图7是本发明实施例提供的另一种计算机的功能模块示意图,如图7所示,所述计算机600还包括:[0120]第一控制模块6〇5,用于控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。[0121]可选地,参见图8,图8是本发明实施例提供的另一种计算机的功能模块示意图,如图8所不,所述计算机600还包括:[0122]第二控制模块6〇6,用于编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。[0123]可选地,所述分组模块602,具体用于:[0124]根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。[0125]可选地,所述编译方式包括多线程编译方式以及单线程编译方式。[0126]可选地,所述分配模块604,具体用于:[0127]根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。[0128]可选地,所述分组模块602,具体用于:[0129]接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。[0130]可选地,参见图9,图9是本发明实施例提供的另一种计算机的功能模块示意图,如图9所示,所述分组模块602,包括:[0131]接收单元6021,用于接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;[0132]分组单元6022,用于基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。[0133]本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过至少一个程序指令相关的硬件来完成,所述至少一个程序可以存储于一计算机可读存储介质中,该至少一个程序在执行时,包括以下步骤:[0134]接收对多个源代码执行的编译操作;[0135]按照预设规则将所述多个源代码分为至少一组;[0136]获取每个源代码对应的编译环境;[0137]从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。[0138]可选地,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源之后,所述至少一个程序被执行时,还可实现如下步骤:[0139]控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。[0140]可选地,所述控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码之后,所述至少一个程序被执行时,还可实现如下步骤:[0141]编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。[0142]可选地,所述按照预设规则将所述多个源代码分为至少一组,包括:[0143]根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。[0144]可选地,所述编译方式包括多线程编译方式以及单线程编译方式。[0145]可选地,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:[0146]根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。[0147]可选地,所述按照预设规则将所述多个源代码分为至少一组,包括:[0148]接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。[0149]可选地,所述接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组,包括:[0150]接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;[0151]基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。[0152]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。[0153]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。[0154]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质如R0MRAM、磁碟、光盘中,包括若干指令用以使得一台终端设备可以是手机,计算机,服务器,空调器,或者网络设备等执行本发明各个实施例所述的方法。[0155]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

权利要求:1.一种编译资源调度方法,应用于计算机,其特征在于,所述方法包括:接收对多个源代码执行的编译操作;按照预设规则将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。2.如权利要求1所述的编译资源调度方法,其特征在于,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源之后,所述方法还包括:控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。3.如权利要求2所述的编译资源调度方法,其特征在于,所述控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码之后,所述方法还包括:编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。4.如权利要求1所述的编译资源调度方法,其特征在于,所述按照预设规则将所述多个源代码分为至少一组,包括:根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。5.如权利要求4所述的编译资源调度方法,其特征在于,所述编译方式包括多线程编译方式以及单线程编译方式。6.如权利要求5所述的编译资源调度方法,其特征在于,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。7.如权利要求1所述的编译资源调度方法,其特征在于,所述按照预设规则将所述多个源代码分为至少一组,包括:接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。8.如权利要求7所述的编译资源调度方法,其特征在于,所述接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组,包括:接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。9.一种计算机,其特征在于,所述计算机包括存储器、至少一个处理器及存储在所述存储器上并可在所述至少一个处理器执行的至少一个程序,所述至少一个程序被所述至少一个处理器执行时实现上述权利要求1〜8任一项所述的方法中的步骤。10.—种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行的至少一个程序,其特征在于,所述至少一个程序被所述计算机执行时使所述计算机执行上述权利要求1〜8任一项所述的方法中的步骤。

百度查询: 努比亚技术有限公司 一种编译资源调度方法、计算机及计算机可读存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。