CN112783508A - 文件的编译方法、装置、设备以及存储介质 - Google Patents
文件的编译方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN112783508A CN112783508A CN202110138098.7A CN202110138098A CN112783508A CN 112783508 A CN112783508 A CN 112783508A CN 202110138098 A CN202110138098 A CN 202110138098A CN 112783508 A CN112783508 A CN 112783508A
- Authority
- CN
- China
- Prior art keywords
- file
- compiling
- hash information
- compiled
- historical
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004519 manufacturing process Methods 0.000 claims 1
- 238000013135 deep learning Methods 0.000 abstract description 7
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003924 mental process Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开公开了一种文件的编译方法、装置、设备以及存储介质,涉及计算机技术领域,尤其涉及深度学习、云计算、大数据等人工智能领域。具体实现方案为:响应于获取到编译请求,确定待编译的目标文件及目标文件对应的第一哈希信息;在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息;根据所述第一哈希信息与所述第二哈希信息的差异,确定增量文件;在所述增量文件与各个黑名单文件均不匹配的情况下,对所述增量文件进行编译。通过仅对未编译过、且可进行增量编译的增量文件进行编译,不仅缩短了编译时间,且不会影响编译系统的稳定性,提高了编译系统的效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及深度学习、云计算、大数据等人工智能领域,具体涉及一种文件的编译方法、装置、设备以及存储介质。
背景技术
深度学习框架的运算准确性十分重要,需要对任何新增代码进行功能验证,即使只新增一行。由此可见,提高深度学习框架的编译系统的效率是一项重要课题。
发明内容
本公开提供了一种文件的编译方法、装置、设备以及存储介质。
根据本公开的第一方面,提供了一种文件的编译方法,包括:
响应于获取到编译请求,确定待编译的目标文件及目标文件对应的第一哈希信息;
在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息;
根据所述第一哈希信息与所述第二哈希信息的差异,确定增量文件;
在所述增量文件与各个黑名单文件均不匹配的情况下,对所述增量文件进行编译。
根据本公开的另一方面,提供了一种文件的编译装置,包括:
第一确定模块,用于响应于获取到编译请求,确定待编译的目标文件及目标文件对应的第一哈希信息;
第一获取模块,用于在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息;
第二确定模块,用于根据所述第一哈希信息与所述第二哈希信息的差异,确定增量文件;
编译模块,用于在所述增量文件与各个黑名单文件均不匹配的情况下,对所述增量文件进行编译。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述一方面实施例所述的文件的编译方法。
根据本公开另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其上存储有计算机程序,所述计算机指令用于使所述计算机执行上述一方面实施例所述的文件的编译方法。
本公开的文件的编译方法、装置、设备及存储介质,至少存在以下有益效果:
编译系统在获取到编译请求后,即可首先确定待编译的目标文件及目标文件对应的第一哈希信息,并在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息,然后根据第一哈希信息与第二哈希信息的差异确定增量文件,并在增量文件与各个黑名单文件均不匹配的情况下对增量文件进行编译。由此,通过仅对未编译过、且可进行增量编译的增量文件,不仅缩短了编译时间,且不会影响编译系统的稳定性,提高了编译系统的效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例提供的一种文件的编译方法的流程示意图;
图2为本公开实施例提供的另一种文件的编译方法的流程示意图;
图3为本公开实施例提供的一种文件的编译装置的结构示意图;
图4为根据本公开实施例的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了方便对本申请的理解,下面首先对本公开涉及的技术领域进行简单解释说明书。
深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。
云计算是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内完成对数以万计的数据的处理,从而达到强大的网络服务。
大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习、深度学习、大数据处理技术、知识图谱技术等几大方向。
下面参考附图描述本公开的文件的编译方法、装置、设备以及存储介质。
图1为本公开第一实施例提出的一种文件的编译方法的流程示意图。
如图1所示,该文件的编译方法包括:
步骤101:响应于获取到编译请求,确定待编译的目标文件及目标文件对应的第一哈希信息。
具体的,当编译系统接收到编译请求之后,则需要确定需要编译的目标文件。本公开实施例中的目标文件为经过改动之后需要进行编译,以验证其可靠性的代码文件。
其中,目标文件对应的第一哈希信息,为对目标文件进行哈希运算后生成的、可唯一表征该目标文件的身份的信息。
需要说明的是,当目标文件中包含多个待编译文件时,第一哈希信息可以为由多个哈希值组成的数组或序列,其中,该数组或序列中的每一个哈希值唯一表征一个待编译文件。
步骤102:在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息。
其中,第二哈希信息,为历史编译产出文件对应的历史待编译文件进行哈希运算后生成的,用于唯一表征历史待编译文件身份的信息。且历史待编译文件中包括多个待编译文件的情况下,第二哈希信息中包括每个待编译文件对应的哈希值。
具体的,编译系统根据待编译的目标文件,在编译系统中探查,确定是否存有该目标文件对应的历史编译产出文件。可以理解的是,目标文件与目标文件对应的历史编译产出文件之间存在一定的映射关系,编译系统可以根据该映射关系进行探查。
可选的,在获取历史编译产出文件中的第二哈希信息之前,还可以确定所述历史编译产出文件对应的编译状态为成功。
具体的,在编译系统中有历史编译产出文件的情况下,编译系统需要校验历史编译产出文件的编译状态是否成功。若编译状态为成功,则说明编译产出文件是正确的。此时,编译系统则可以获取历史编译文件的第二哈希信息。
步骤103:根据所述第一哈希信息与所述第二哈希信息的差异,确定增量文件。
具体的,编译系统在获取第一哈希信息和第二哈希信息之后,则可以比较第一哈希信息中各个第一哈希值,是否分别与第二哈希信息中的各个第二哈希值相同。若相同,则说明该哈希值对应的待编译文件未改动,若不同,则说明该第一哈希值对应的待编译文件为新增文件,或者与历史待编译文件相比已改动,需要重新编译,即该第一哈希值对应的待编译文件为增量文件。
举例来说,第一哈希信息和第二哈希信息中均有50个哈希值,则编译系统按照从1-50的顺序对50组哈希值一一进行比照,若编译系统发现第一哈希信息中第25个哈希值和第二哈希信息中的第25个哈希值不同,则确定目标文件中,与第25个哈希值对应的文件为增量文件,并继续对第26组哈希值进行比照,直到遍历完该50组哈希值,以确定目标文件中包含的增量文件。
步骤104:在所述增量文件与各个黑名单文件均不匹配的情况下,对所述增量文件进行编译。
需要说明的是,若目标文件与历史编译产出对应的源文件间相互差异很大,或者,若新提交的目标文件修改了构建器底层,或者,若新提交的目标文件可能是错误代码等情形,如果直接在历史编译产出上进行增量编译,则会使编译系统趋不稳定。即,在某些场景下,历史编译产出文件无法直接利用。因此,本公开中的,通过预置黑名单文件,以用于判断历史编译产出文件是否可直接利用。若增量文件为黑名单文件,则说明当前不可直接进行增量编译的文件。
具体的,编译系统通过遍历黑名单文件,判断是否有与增量文件匹配的黑名单文件。若增量文件与当前系统中的黑名单文件均不匹配,则编译系统直接对增量文件进行编译。可选的,本公开中,可以为不同的编译平台及编译器,配置不同的黑名单文件。从而编译系统在对当前的增量文件进行校验时,可以首先根据当前的编译平台及编译器,确定当前参考的黑名单文件。
具体来说,在特定的编译平台中设有特定的编译器,且针对不同编译器中配置有不同的编译配置文件,也即上述的黑名单文件。可以理解的是,黑名单文件是指不适用于根据增量文件进行编译的文件。
如果可以确定增量文件不是黑名单文件中的任何一个文件,则仅需对增量文件进行编译,因而编译时间较短,可以提高编译效率。
本公开实施例中编译系统在获取到编译请求后,即可首先确定待编译的目标文件及目标文件对应的第一哈希信息,并在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息,然后根据第一哈希信息与第二哈希信息的差异确定增量文件,并在增量文件与各个黑名单文件均不匹配的情况下对增量文件进行编译。由此,通过仅对未编译过、且可进行增量编译的增量文件进行编译,不仅缩短了编译时间,且不会影响编译系统的稳定性,提高了编译系统的效率。
图2为本公开第二实施例提出的一种文件的编译方法的流程示意图。
如图2所示,该文件的编译方法包括:
步骤201:响应于获取到编译请求,确定待编译的目标文件及目标文件对应的第一哈希信息。
步骤202:在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息。
步骤203:根据所述第一哈希信息与所述第二哈希信息的差异,确定增量文件。
需要说明的是,上述步骤201、202及203的具体实现过程,可以参照上述实施例中的步骤101、102及103的具体描述,此处不再赘述。
步骤204:在所述增量文件与任一黑名单文件匹配的情况下,对所述目标文件进行编译,以获取目标文件对应的编译产出文件。
具体的,若编译系统在黑名单文件中匹配到增量文件,则说明在历史编译产出文件的基础上对该增量文件进行增量编译,可能会导致系统不稳定,此时,需要对目标文件进行全量编译。
步骤205:在所述增量文件与各个黑名单文件均不匹配的情况下,对所述增量文件进行编译,以获取目标文件对应的编译产出文件。
具体的,编译系统通过遍历黑名单文件,判断是否有与增量文件匹配的黑名单文件。若增量文件与当前系统中的黑名单文件均不匹配,则说明直接在历史编译产出文件的基础上,对增量文件进行增量编译,即可得到目标文件对应的编译产出文件,从而编译系统即可在历史编译产出文件的基础上直接对增量文件进行编译。
其中,本公开实施例在对所述增量文件进行编译之后的具体操作可以参照上述步骤104。
步骤206:在确定目标文件的编译状态为成功后,清除历史编译产出文件,并记录当前的编译产出文件及第一哈希信息。
具体的,为了避免过多的历史编译产出文件占用编译系统的存储资源,编译系统可在确定当前的编译状态为成功时,记录当前的编译产出文件及对应的第一哈希信息,并清除历史的编译产出文件。
其中,当前的编译产出文件可以为对目标文件的直接编译产出文件,也可以为在历史编译产出文件基础上,对增量文件进行编译后,产出的与目标文件对应的编译产出文件。
作为另一种可能的方式,由于编译失败的编译产出文件,对后续的增量编译无任何意义,因此为了节省编译系统的存储资源,可以仅在增量文件编译成功的情况下,生成并记录所述目标文件对应的编译产出文件及所述第一哈希信息。
可选的,为了避免无效文件占用编译系统的存储资源,在编译系统生成并记录目标文件当前对应的编译产出文件之后,则可以对之前的历史编译产出文件进行清除。
或者,本公开中,编译系统还可以在每次产生编译产出文件后,都记录该编译产出文件、编译状态及其对应的源文件的哈希信息,以供后续编译使用。即编译系统中,可以保存多次的历史编译产出文件及对应的哈希信息,从而在每次编译时,可以根据当前待编译文件对应的哈希信息分别与多个历史哈希信息的匹配度,确定可用的历史编译产出文件,进而再基于可用的历史编译产出文件进行增量编译。
举例来说,若编译系统中已存储了3个历史编译产出文件及3个第二哈希信息。在获取到待编译的目标文件及对应的第一哈希信息后,通过比较可知,第一哈希信息与已存储的第二个第二哈希信息间的差异最小,二者仅有一个哈希值不同,且该不同的哈希值对应的增量文件与任何黑名单文件均不相同。从而编译系统即可在第二个历史编译产出文件的基础上,对目标文件中的增量文件进行增量编译,以生成目标文件对应的编译产出文件。并记录该目标文件对应的编译产出文件及第一哈希信息,以供后续编译参考。
或者,本公开中,编译系统还可以在每次产生编译产出文件后,根据当前产出的编译文件对应的哈希信息与之前已存储的各哈希信息间的差异,选择性的删除部分历史编译产出文件。
举例来说,若编译系统中已存储了3个历史编译产出文件及3个第二哈希信息、且当前编译的目标文件对应的第一哈希信息与第一个第二哈希信息间的差异最小,第一哈希信息仅在第一个第二哈希信息的基础上增加了一个新的哈希值,即目标文件与第一历史编译产出文件对应的第一源码文件相比,仅新增了一个待编译的文件,从而即可从目标文件与第一源码文件分别对应的编译产出文件中,选取一个进行存储即可。
需要说明的的是,上述各例子中,编译产出文件的存储及选择规则,仅是示意性说明,并不能作为对本公开中对编译产出文件的处理方式的限定。
本公开实施例中编译系统在获取到编译请求后,即可首先确定待编译的目标文件及目标文件对应的第一哈希信息,并在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息,然后根据第一哈希信息与第二哈希信息的差异确定增量文件,若增量文件与任一黑名单文件匹配的情况下,对目标文件进行编译,若增量文件与各个黑名单文件均不匹配,则对增量文件进行编译,最后确定目标文件的编译状态为成功后,清除历史编译产出文件,并记录当前的编译产出文件及第一哈希信息。由此,通过基于历史编译产出文件,仅对增量文件进行编译,不仅缩短了编译时间,且不会影响编译系统的稳定性,提高了编译系统的效率,并且仅记录最新的编译产出文件,避免了浪费编译系统的资源,保证了编译的性能。
为了实现上述实施例,本公开实施例还提出一种文件的编译装置。图3为本公开实施例提供的一种文件的编译装置的结构示意图。
如图3所示,该文件的编译装置300包括:第一确定模块310、第一获取模块320、第二确定模块330及编译模块340。
第一确定模块310,用于响应于获取到编译请求,确定待编译的目标文件及目标文件对应的第一哈希信息。
第一获取模块320,用于在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息。
第二确定模块330,用于根据第一哈希信息与第二哈希信息的差异,确定增量文件。
编译模块340,用于在增量文件与各个黑名单文件均不匹配的情况下,对增量文件进行编译。
可选的,在本公开又一方面实施例一种可能的实现方式中,上述第一获取模块320,还用于:
确定历史编译产出文件对应的编译状态为成功。
可选的,在本公开又一方面实施例一种可能的实现方式中,上述编译模块340,还用于:
生成并记录目标文件对应的编译产出文件、编译状态及第一哈希信息。
可选的,在本公开又一方面实施例一种可能的实现方式中,上述编译模块340,还用于:
在增量文件编译成功的情况下,生成并记录目标文件对应的编译产出文件及第一哈希信息。
可选的,在本公开又一方面实施例一种可能的实现方式中,上述编译模块340,还包括:
清除模块,用于清除历史编译产出文件,并记录当前的编译产出文件及第一哈希信息。
可选的,在本公开又一方面实施例一种可能的实现方式中,上述
第二确定模块330,还用于:
根据当前的编译平台及编译器,确定各个黑名单文件。
本公开实施例中编译系统在获取到编译请求后,即可首先确定待编译的目标文件及目标文件对应的第一哈希信息,并在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息,然后根据第一哈希信息与第二哈希信息的差异确定增量文件,并在增量文件与各个黑名单文件均不匹配的情况下对增量文件进行编译。由此,通过仅对未编译过、且可进行增量编译的增量文件进行编译,不仅缩短了编译时间,且不会影响编译系统的稳定性,提高了编译系统的效率。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图4所示,是根据本公开实施例的文件的编译方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理,以实现上述各个实施例提供的文件的编译方法。在RAM403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如文件的编译方法。例如,在一些实施例中,自动驾驶的校验方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的文件的编译方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文件的编译方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
本公开实施例中编译系统在获取到编译请求后,即可首先确定待编译的目标文件及目标文件对应的第一哈希信息,并在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息,然后根据第一哈希信息与第二哈希信息的差异确定增量文件,并在增量文件与各个黑名单文件均不匹配的情况下对增量文件进行编译。由此,通过仅对未编译过、且可进行增量编译的增量文件进行编译,不仅缩短了编译时间,且不会影响编译系统的稳定性,提高了编译系统的效率。
本公开实施例还提供了一种计算机程序产品。该计算机程序产品包括计算机程序,计算机程序被处理器执行时能够实现如上述任一实施例的文件的编译方法。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本公开实施例的电子设备、可读存储介质和计算机程序产品,具有如下有益效果:
编译系统在获取到编译请求后,即可首先确定待编译的目标文件及目标文件对应的第一哈希信息,并在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息,然后根据第一哈希信息与第二哈希信息的差异确定增量文件,并在增量文件与各个黑名单文件均不匹配的情况下对增量文件进行编译。由此,通过仅对未编译过、且可进行增量编译的增量文件进行编译,不仅缩短了编译时间,且不会影响编译系统的稳定性,提高了编译系统的效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (17)
1.一种文件的编译方法,包括:
响应于获取到编译请求,确定待编译的目标文件及目标文件对应的第一哈希信息;
在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息;
根据所述第一哈希信息与所述第二哈希信息的差异,确定增量文件;
在所述增量文件与各个黑名单文件均不匹配的情况下,对所述增量文件进行编译。
2.如权利要求1所述的方法,其中,在所述获取历史编译产出文件中的第二哈希信息之前,还包括:
确定所述历史编译产出文件对应的编译状态为成功。
3.如权利要求2所述的方法,其中,在所述对所述增量文件进行编译之后,还包括:
生成并记录所述目标文件对应的编译产出文件、编译状态及所述第一哈希信息。
4.如权利要求1所述的方法,其中,在所述对所述增量文件进行编译之后,还包括:
在所述增量文件编译成功的情况下,生成并记录所述目标文件对应的编译产出文件及所述第一哈希信息。
5.如权利要求1-4任一所述的方法,其中,在所述确定增量文件之后,还包括:
在所述增量文件与任一黑名单文件匹配的情况下,对所述目标文件进行编译。
6.如权利要求5所述的方法,其中,在所述对所述目标文件进行编译之后,还包括:
清除所述历史编译产出文件,并记录当前的编译产出文件及所述第一哈希信息。
7.如权利要求1-4任一所述的方法,其中,在所述增量文件与各个黑名单文件均不匹配之前,还包括:
根据当前的编译平台及编译器,确定所述各个黑名单文件。
8.一种文件的编译装置,包括:
第一确定模块,用于响应于获取到编译请求,确定待编译的目标文件及目标文件对应的第一哈希信息;
第一获取模块,用于在系统中有历史编译产出文件的情况下,获取历史编译产出文件中的第二哈希信息;
第二确定模块,用于根据所述第一哈希信息与所述第二哈希信息的差异,确定增量文件;
编译模块,用于在所述增量文件与各个黑名单文件均不匹配的情况下,对所述增量文件进行编译。
9.如权利要求8所述的装置,其中,所述第一获取模块,还用于:
确定所述历史编译产出文件对应的编译状态为成功。
10.如权利要求8所述的装置,其中,所述编译模块,还用于:
生成并记录所述目标文件对应的编译产出文件、编译状态及所述第一哈希信息。
11.如权利要求8所述的装置,其中,所述编译模块,还用于:
在所述增量文件编译成功的情况下,生成并记录所述目标文件对应的编译产出文件及所述第一哈希信息。
12.如权利要求8-11任一所述的装置,其中,所述编译模块,还用于:
在所述增量文件与任一黑名单文件匹配的情况下,对所述目标文件进行编译。
13.如权利要求12所述的装置,其中,还包括:
清除模块,用于清除所述历史编译产出文件,并记录当前的编译产出文件及所述第一哈希信息。
14.如权利要求8-11任一所述的装置,其中,所述第二确定模块,还用于:
根据当前的编译平台及编译器,确定所述各个黑名单文件。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的文件的编译方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的文件的编译方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-7中任一项所述的文件的编译方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110138098.7A CN112783508B (zh) | 2021-02-01 | 2021-02-01 | 文件的编译方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110138098.7A CN112783508B (zh) | 2021-02-01 | 2021-02-01 | 文件的编译方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783508A true CN112783508A (zh) | 2021-05-11 |
CN112783508B CN112783508B (zh) | 2022-05-24 |
Family
ID=75760377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110138098.7A Active CN112783508B (zh) | 2021-02-01 | 2021-02-01 | 文件的编译方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783508B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051226A (zh) * | 2021-06-02 | 2021-06-29 | 芯华章科技股份有限公司 | 系统级编译方法、电子设备及存储介质 |
WO2023123111A1 (zh) * | 2021-12-29 | 2023-07-06 | 华为技术有限公司 | 编译方法以及用于编译的装置 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308320B1 (en) * | 1999-01-15 | 2001-10-23 | Hewlett-Packard Company | Method and apparatus for incremental selective compilation of intermediate code files during computer system compilation and linking |
CN105138635A (zh) * | 2015-08-21 | 2015-12-09 | 中国人民解放军装备学院 | 一种利用哈希值比对进行数据增量复制的方法 |
CN106325970A (zh) * | 2016-10-17 | 2017-01-11 | 宁德时代新能源科技股份有限公司 | 编译方法和编译系统 |
US20170132197A1 (en) * | 2015-11-09 | 2017-05-11 | Microsoft Technology Licensing, Llc | Creating and modifying applications from a mobile device |
CN107291439A (zh) * | 2016-04-13 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种目标增量数据构建方法及装置 |
CN109213492A (zh) * | 2018-09-21 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种自动化编译安装方法、装置、设备及存储介质 |
CN109240698A (zh) * | 2017-06-08 | 2019-01-18 | 中国移动通信集团浙江有限公司 | 一种增量编译处理方法及装置 |
CN110032388A (zh) * | 2019-04-04 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种增量文件的构建、发布、下载方法及装置 |
CN110443034A (zh) * | 2019-08-05 | 2019-11-12 | 中国工商银行股份有限公司 | 风险程序文件的识别方法、装置、计算设备以及介质 |
CN110673853A (zh) * | 2019-09-25 | 2020-01-10 | 中国工商银行股份有限公司 | 一种编译方法、装置及系统 |
CN110990019A (zh) * | 2019-11-20 | 2020-04-10 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种Java类分析方法、装置、存储介质及电子设备 |
CN111752570A (zh) * | 2020-06-29 | 2020-10-09 | 重庆小雨点小额贷款有限公司 | 一种编译方法、装置、终端及计算机可读存储介质 |
CN111752572A (zh) * | 2020-06-29 | 2020-10-09 | 百度在线网络技术(北京)有限公司 | 编译方法、装置、设备及存储介质 |
CN111796831A (zh) * | 2020-06-24 | 2020-10-20 | 苏州大学 | 一种多芯片兼容的编译方法和装置 |
CN112114811A (zh) * | 2020-08-19 | 2020-12-22 | 上海元城汽车技术有限公司 | 一种编译方法、装置和设备 |
-
2021
- 2021-02-01 CN CN202110138098.7A patent/CN112783508B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308320B1 (en) * | 1999-01-15 | 2001-10-23 | Hewlett-Packard Company | Method and apparatus for incremental selective compilation of intermediate code files during computer system compilation and linking |
CN105138635A (zh) * | 2015-08-21 | 2015-12-09 | 中国人民解放军装备学院 | 一种利用哈希值比对进行数据增量复制的方法 |
US20170132197A1 (en) * | 2015-11-09 | 2017-05-11 | Microsoft Technology Licensing, Llc | Creating and modifying applications from a mobile device |
CN107291439A (zh) * | 2016-04-13 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种目标增量数据构建方法及装置 |
CN106325970A (zh) * | 2016-10-17 | 2017-01-11 | 宁德时代新能源科技股份有限公司 | 编译方法和编译系统 |
CN109240698A (zh) * | 2017-06-08 | 2019-01-18 | 中国移动通信集团浙江有限公司 | 一种增量编译处理方法及装置 |
CN109213492A (zh) * | 2018-09-21 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种自动化编译安装方法、装置、设备及存储介质 |
CN110032388A (zh) * | 2019-04-04 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种增量文件的构建、发布、下载方法及装置 |
CN110443034A (zh) * | 2019-08-05 | 2019-11-12 | 中国工商银行股份有限公司 | 风险程序文件的识别方法、装置、计算设备以及介质 |
CN110673853A (zh) * | 2019-09-25 | 2020-01-10 | 中国工商银行股份有限公司 | 一种编译方法、装置及系统 |
CN110990019A (zh) * | 2019-11-20 | 2020-04-10 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种Java类分析方法、装置、存储介质及电子设备 |
CN111796831A (zh) * | 2020-06-24 | 2020-10-20 | 苏州大学 | 一种多芯片兼容的编译方法和装置 |
CN111752570A (zh) * | 2020-06-29 | 2020-10-09 | 重庆小雨点小额贷款有限公司 | 一种编译方法、装置、终端及计算机可读存储介质 |
CN111752572A (zh) * | 2020-06-29 | 2020-10-09 | 百度在线网络技术(北京)有限公司 | 编译方法、装置、设备及存储介质 |
CN112114811A (zh) * | 2020-08-19 | 2020-12-22 | 上海元城汽车技术有限公司 | 一种编译方法、装置和设备 |
Non-Patent Citations (2)
Title |
---|
PATRICK W. SATHYANATHAN: "Incremental whole program optimization and compilation", 《2017 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO)》 * |
陈志龙等: "基于动态字典的增量更新算法", 《解放军理工大学学报(自然科学版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051226A (zh) * | 2021-06-02 | 2021-06-29 | 芯华章科技股份有限公司 | 系统级编译方法、电子设备及存储介质 |
WO2023123111A1 (zh) * | 2021-12-29 | 2023-07-06 | 华为技术有限公司 | 编译方法以及用于编译的装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112783508B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110807515A (zh) | 模型生成方法和装置 | |
US9740480B1 (en) | Apparatus and methodologies for code refactoring | |
US20230108920A1 (en) | System and method for providing robust artificial intelligence inference in edge computing devices | |
CN112783508B (zh) | 文件的编译方法、装置、设备以及存储介质 | |
CN112527281B (zh) | 基于人工智能的算子升级方法、装置、电子设备及介质 | |
CN111444956A (zh) | 低负载信息预测方法、装置、计算机系统及可读存储介质 | |
CN113409898B (zh) | 分子结构获取方法、装置、电子设备及存储介质 | |
CN110780879A (zh) | 一种基于智能编译技术的决策执行方法、装置、设备及介质 | |
CN117474091A (zh) | 一种知识图谱构建方法、装置、设备及存储介质 | |
CN114217848A (zh) | 依赖关系处理方法、装置、电子设备及计算机存储介质 | |
CN113742457A (zh) | 应答处理方法、装置、电子设备及存储介质 | |
CN117724980A (zh) | 软件框架性能的测试方法、装置、电子设备和存储介质 | |
CN113590774A (zh) | 事件查询方法、装置以及存储介质 | |
CN115186738B (zh) | 模型训练方法、装置和存储介质 | |
CN115603955B (zh) | 异常访问对象识别方法、装置、设备和介质 | |
CN116341634A (zh) | 神经结构搜索模型的训练方法、装置及电子设备 | |
CN113704256B (zh) | 数据识别方法、装置、电子设备及存储介质 | |
CN115660049A (zh) | 模型处理方法、装置、电子设备以及存储介质 | |
CN115809688A (zh) | 一种模型调试方法、装置、电子设备及存储介质 | |
CN111815442B (zh) | 一种链接预测的方法、装置和电子设备 | |
CN114297385A (zh) | 模型训练方法、文本分类方法、系统、设备及介质 | |
CN114429211A (zh) | 用于生成信息的方法、装置、设备、介质和产品 | |
CN113590217A (zh) | 基于引擎的函数管理方法、装置、电子设备及存储介质 | |
CN113704314A (zh) | 数据的分析方法及装置、电子设备和存储介质 | |
CN113313049A (zh) | 超参数的确定方法、装置、设备、存储介质以及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |