CN109800077A - 全程序静态检测的文件优先检测顺序的处理方法及装置 - Google Patents
全程序静态检测的文件优先检测顺序的处理方法及装置 Download PDFInfo
- Publication number
- CN109800077A CN109800077A CN201811512752.0A CN201811512752A CN109800077A CN 109800077 A CN109800077 A CN 109800077A CN 201811512752 A CN201811512752 A CN 201811512752A CN 109800077 A CN109800077 A CN 109800077A
- Authority
- CN
- China
- Prior art keywords
- file
- target document
- document collection
- detection
- dependence
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种全程序静态检测的文件优先检测顺序的处理方法及装置,所述方法包括:加载待检测的每个文件,以及每个文件之间的依赖关系;根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。所述装置执行上述方法。本发明实施例提供的全程序静态检测的文件优先检测顺序的处理方法及装置,能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
Description
技术领域
本发明实施例涉及文件检测技术领域,具体涉及一种全程序静态检测的文件优先检测顺序的处理方法及装置。
背景技术
随着信息技术的发展,需要全程序静态检测的文件越来越多,这些文件之间存在着依赖关系,例如文件A依赖文件B,即要先检测文件B,才能对文件A进行检测。
对于较复杂的检测对象,其中的待检测文件较多,待检测文件之间的依赖关系较为复杂,那么,在实际的检测过程中,经常会出现如下情况,例如:程序启动两个并行检测进程,对两个文件并行进行检测,其他多个文件均需要等待这两个文件中的至少一个被检测完成后,才能够继续被检测,如果优先被检测的两个文件选择不合理,在这种情况下,会造成并行检测的检测效率低下。
因此,如何避免上述缺陷,优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率,成为亟须解决的问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种全程序静态检测的文件优先检测顺序的处理方法及装置。
第一方面,本发明实施例提供一种全程序静态检测的文件优先检测顺序的处理方法,所述方法包括:
加载待检测的每个文件,以及每个文件之间的依赖关系;
根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;
启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
第二方面,本发明实施例提供一种全程序静态检测的文件优先检测顺序的处理装置,所述装置包括:
加载单元,用于加载待检测的每个文件,以及每个文件之间的依赖关系;
生成单元,用于根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;
检测单元,用于启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:
加载待检测的每个文件,以及每个文件之间的依赖关系;
根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;
启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如下方法:
加载待检测的每个文件,以及每个文件之间的依赖关系;
根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;
启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理方法及装置,先生成目标文件集合,再根据目标文件集合中目标文件的检测结果,动态更新该目标文件集合,能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例全程序静态检测的文件优先检测顺序的处理方法流程示意图;
图2为本发明实施例文件之间的依赖关系示意图;
图3为本发明另一实施例文件之间的依赖关系示意图;
图4为本发明实施例模块之间调用关系图;
图5为本发明实施例信息动态加载模块的执行过程流程图;
图6为本发明实施例依赖情况的迭代处理模块的执行过程流程图;
图7为本发明实施例检测启动模块的执行过程流程图;
图8为本发明实施例集合维护模块的执行过程流程图;
图9为本发明实施例全程序静态检测的文件优先检测顺序的处理装置结构示意图;
图10为本发明实施例提供的电子设备实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例全程序静态检测的文件优先检测顺序的处理方法流程示意图,如图1所示,本发明实施例提供的一种全程序静态检测的文件优先检测顺序的处理方法,包括以下步骤:
S101:加载待检测的每个文件,以及每个文件之间的依赖关系。
具体的,装置加载待检测的每个文件,以及每个文件之间的依赖关系。装置可以理解为执行本方法的设备等。图2为本发明实施例文件之间的依赖关系示意图,如图2所示,文件1依赖文件4,文件3依赖文件5,也依赖文件9,文件5依赖文件9,其它依赖关系不再赘述。
S102:根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列。
具体的,装置根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列。具体可以包括如下步骤:
根据所有文件之间的依赖关系,为每个文件生成权值。参照图2,每个文件对应的权值如下:
1:0、2:0、3:0、4:1、5:1、6:1、7:1、8:1、9:8、10:2、11:3
其中,“1:0”中的“1”表示文件1,“1:0”中的“0”表示文件1对应的权值为零,结合图2,文件1不被任何文件依赖,因此,权值为零;文件11被文件3、文件7和文件10依赖,因此,文件11对应的权值为3,其他文件不再赘述。
按照权值数值的大小顺序、排列所有文件。
参照上述举例为:
9:8、11:3、10:2、4:1、5:1、6:1、7:1、8:1、1:0、2:0、3:0
剔除需依赖其它文件的文件,并将剩余文件组成所述目标文件集合。举例说明如下:文件9不依赖任何其他文件,因此,无需剔除,同理文件11也无需剔除,文件10需要依赖文件11,因此,需要剔除,后续文件不再赘述。目标文件集合A为{9、11、4、8、2}(或{9、11、8、4、2},其中,8和4的被依赖关系值相等)。已剔除的文件为10、5、6、7、1、3。需要说明的是:也可以先剔除需依赖其它文件的文件,并将剩余文件按照权值数值的大小顺序、排列所有剩余文件,以组成所述目标文件集合。
S103:启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
具体的,装置启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。进一步地,可以根据启动的并行进程数,依次从所述目标文件集合选取与所述并行进程数相等的目标文件进行检测。
需要说明的是:在对目标文件集合中的目标文件进行检测的同时,目标文件集合也根据检测结果进行动态更新,具体包括:
从所述目标文件集合剔除已检测完成的目标文件。
图3为本发明另一实施例文件之间的依赖关系示意图,举例说明如下:启动三个并行进程,参照上述集合A{9、11、4、8、2},即先选取9、11、4进行检测。由于,不同文件的圈复杂度等方面存在不同,检测消耗时间会存在较大的差异,这里,假设文件9首先完成了检测,剔除9。
获取依赖已检测完成的目标文件的其它文件集合,并在所述其它文件集合中选取不依赖其它文件的指定文件。
参照图2,依赖9的其它文件集合为{3、5、6、7、10},在剔除9之后,参照图3,3依赖5、6、7;7依赖10、11;10依赖11,而5、6不依赖其它文件,因此选取的指定文件为5、6。
并根据所述指定文件的权值数值大小,将所述指定文件补入到所述目标文件集合的相应位置,并重复执行所述从所述目标文件集合剔除已检测完成的目标文件,直到检测完成所有目标文件。指定文件为5、6对应的权值都为1,因此,按照权值数值大小的顺序,将5、6排到8之后,2之前(可先比较权值,若权值相同,可按照时间先后顺序排列,在时间顺序上,8在5、6之前)。
此时集合A中各文件的状态为11(权值3,检测中)、4(权值1,检测中)、8(权值1,刚加入检测进程)、5(权值1,新增)、6(权值1,新增)、2,即,此时目标文件集合更新为:剔除9、新增5和6。以此类推,直到完成所有目标文件的检测。
为了更加有效地执行该方法,可以通过将实现该方法的程序进行模块化处理,即通过如下四个模块实现该方法的执行,图4为本发明实施例模块之间调用关系图,如图4所示,包括了“信息动态加载模块”、“依赖情况的迭代处理模块”、“检测启动模块”、“集合维护模块”。基本关系为:
“信息动态加载模块”执行过程中调用了“依赖情况的迭代处理模块”,在“信息动态加载模块”调用完成后,调用“检测启动模块”,在“检测启动模块”中调用“集合维护模块”。下面对各模块之间的执行,以及调用关系分别说明如下:
对于“信息动态加载模块”:
图5为本发明实施例信息动态加载模块的执行过程流程图,如图5所示,图5中的“检测模块”对应“检测启动模块”;图5中的“迭代处理模块”对应“依赖情况的迭代处理模块”,可以看出:在该模块内部,调用了“依赖情况的迭代处理模块”(下文描述),在该模块运行完成后,程序进入“检测进行模块”(下文描述)。
对于“依赖情况的迭代处理模块”:
图6为本发明实施例依赖情况的迭代处理模块的执行过程流程图,如图6所示,此模块在“信息动态加载模块”(见前描述)的内部调用,用于迭代处理已有的权值。即,当读取一个依赖关系“f1被f2依赖”后(f1权值执行了+1操作),如果存在“f2被f3依赖”、“f3被f4依赖”、…、“fn-1被fn依赖”的情况,每个情况,都应该对f1的权值进行+1操作。
该算法,维护了“依赖关系”的“传递性”,保证被多个文件依赖的文件,有更高的权值。
对于“检测启动模块”:
图7为本发明实施例检测启动模块的执行过程流程图,如图7所示,在“信息动态加载模块”执行完成后(见前描述),程序进入“检测启动模块”。此模块根据信息动态加载模块生成的集合A,启动文件检测进程,并调用集合维护模块(下文描述)对集合A进行动态更新。
对于“集合维护模块”:
图8为本发明实施例集合维护模块的执行过程流程图,如图8所示,此模块,用于在一个文件检测完成后,对当前没有检测文件的关系进行重新调整,并判断是否有文件因为该文件检测结束,不再有依赖文件未被检测的情况,从而可以被放入集合A中。
采用该方法,可以对全程序静态检测过程中的被检测对象文件的检测顺序进行优化,可以在同一时刻,有效的启动多个进程,避免了在某一时刻,由于决策不当,出现了多个被检测对象文件同时等待一个被检测对象文件,而出现了系统中只存在一个(或少量几个)检测进程的资源利用不当情况。从而优化了并行资源的利用,极大的节省了对检测对象工程进行全程序静态检测的时间,提高了整体的工作效率。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理方法,先生成目标文件集合,再根据目标文件集合中目标文件的检测结果,动态更新该目标文件集合,能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
在上述实施例的基础上,所述根据所有文件之间的依赖关系,生成目标文件集合,包括:
根据所有文件之间的依赖关系,为每个文件生成权值。
具体的,装置根据所有文件之间的依赖关系,为每个文件生成权值。可参照上述实施例,不再赘述。
按照权值数值的大小顺序、排列所有文件。
具体的,装置按照权值数值的大小顺序、排列所有文件。可参照上述实施例,不再赘述。
剔除需依赖其它文件的文件,并将剩余文件组成所述目标文件集合。
具体的,装置剔除需依赖其它文件的文件,并将剩余文件组成所述目标文件集合。可参照上述实施例,不再赘述。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理方法,能够合理、有效地生成目标文件集合,进一步能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
在上述实施例的基础上,所述目标文件集合根据检测结果进行动态更新,包括:
从所述目标文件集合剔除已检测完成的目标文件。
具体的,装置从所述目标文件集合剔除已检测完成的目标文件。可参照上述实施例,不再赘述。
获取依赖已检测完成的目标文件的其它文件集合,并在所述其它文件集合中选取不依赖其它文件的指定文件。
具体的,装置获取依赖已检测完成的目标文件的其它文件集合,并在所述其它文件集合中选取不依赖其它文件的指定文件。可参照上述实施例,不再赘述。
并根据所述指定文件的权值数值大小,将所述指定文件补入到所述目标文件集合的相应位置,并重复执行所述从所述目标文件集合剔除已检测完成的目标文件,直到检测完成所有目标文件。
具体的,装置并根据所述指定文件的权值数值大小,将所述指定文件补入到所述目标文件集合的相应位置,并重复执行所述从所述目标文件集合剔除已检测完成的目标文件,直到检测完成所有目标文件。可参照上述实施例,不再赘述。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理方法,通过能够合理、有效地对目标文件集合进行动态更新,进一步能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
在上述实施例的基础上,所述根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测,包括:
根据启动的并行进程数,依次从所述目标文件集合选取与所述并行进程数相等的目标文件进行检测。
具体的,装置根据启动的并行进程数,依次从所述目标文件集合选取与所述并行进程数相等的目标文件进行检测。可参照上述实施例,不再赘述。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理方法,通过合理地从目标文件集合中选取并行检测的目标文件数量,进一步能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
在上述实施例的基础上,所述方法还包括:
动态更新每个文件的权值。
具体的,装置动态更新每个文件的权值。具体可以采用如下方式:
在加载待检测的每个文件,以及每个文件之间的依赖关系的过程中,若检测到新增文件,则根据新增文件对应的新增依赖关系,更新每个文件的权值。参照图2,如果在文件1和文件4之间新增文件12(图2未示出),则文件12对应的新增依赖关系为依赖文件4,且被文件1依赖,因此,文件12的权值为1,文件4同时被文件1和文件12依赖,因此,文件4的权值为2(即文件4的权值由1变为2)。
若未检测到新增文件,但检测到特定文件新增了依赖关系,则根据新增的依赖关系,更新每个文件的权值。参照图2,在图2已示出内容的基础上(即不含新增文件12),增加文件2依赖文件4的依赖关系(图2未示出),则文件4被文件1和文件2分别依赖,因此,文件4的权值为2(即文件4的权值由1变为2)。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理方法,通过动态更新每个文件的权值,进一步能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
在上述实施例的基础上,所述动态更新每个文件的权值,包括:
在加载待检测的每个文件,以及每个文件之间的依赖关系的过程中,若检测到新增文件,则根据新增文件对应的新增依赖关系,更新每个文件的权值。
具体的,装置在加载待检测的每个文件,以及每个文件之间的依赖关系的过程中,若检测到新增文件,则根据新增文件对应的新增依赖关系,更新每个文件的权值。可参照上述实施例,不再赘述。
若未检测到新增文件,但检测到特定文件新增了依赖关系,则根据新增的依赖关系,更新每个文件的权值。
具体的,装置若未检测到新增文件,但检测到特定文件新增了依赖关系,则根据新增的依赖关系,更新每个文件的权值。可参照上述实施例,不再赘述。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理方法,通过在新增文件、以及新增依赖关系时更新每个文件的权值,进一步能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
图9为本发明实施例全程序静态检测的文件优先检测顺序的处理装置结构示意图,如图9所示,本发明实施例提供了一种全程序静态检测的文件优先检测顺序的处理装置,包括加载单元901、生成单元902和检测单元903,其中:
加载单元901用于加载待检测的每个文件,以及每个文件之间的依赖关系;生成单元902用于根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;检测单元903用于启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
具体的,加载单元901用于加载待检测的每个文件,以及每个文件之间的依赖关系;生成单元902用于根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;检测单元903用于启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理装置,先生成目标文件集合,再根据目标文件集合中目标文件的检测结果,动态更新该目标文件集合,能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
在上述实施例的基础上,所述生成单元902具体用于:根据所有文件之间的依赖关系,为每个文件生成权值;按照权值数值的大小顺序、排列所有文件;剔除需依赖其它文件的文件,并将剩余文件组成所述目标文件集合。
具体的,所述生成单元902具体用于:根据所有文件之间的依赖关系,为每个文件生成权值;按照权值数值的大小顺序、排列所有文件;剔除需依赖其它文件的文件,并将剩余文件组成所述目标文件集合。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理装置,能够合理、有效地生成目标文件集合,进一步能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
在上述实施例的基础上,所述检测单元903具体用于:从所述目标文件集合剔除已检测完成的目标文件;获取依赖已检测完成的目标文件的其它文件集合,并在所述其它文件集合中选取不依赖其它文件的指定文件;并根据所述指定文件的权值数值大小,将所述指定文件补入到所述目标文件集合的相应位置,并重复执行所述从所述目标文件集合剔除已检测完成的目标文件,直到检测完成所有目标文件。
具体的,所述检测单元903具体用于:从所述目标文件集合剔除已检测完成的目标文件;获取依赖已检测完成的目标文件的其它文件集合,并在所述其它文件集合中选取不依赖其它文件的指定文件;并根据所述指定文件的权值数值大小,将所述指定文件补入到所述目标文件集合的相应位置,并重复执行所述从所述目标文件集合剔除已检测完成的目标文件,直到检测完成所有目标文件。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理装置,通过能够合理、有效地对目标文件集合进行动态更新,进一步能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
在上述实施例的基础上,所述检测单元903具体用于:根据启动的并行进程数,依次从所述目标文件集合选取与所述并行进程数相等的目标文件进行检测。
具体的,所述检测单元903具体用于:根据启动的并行进程数,依次从所述目标文件集合选取与所述并行进程数相等的目标文件进行检测。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理装置,通过合理地从目标文件集合中选取并行检测的目标文件数量,进一步能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
在上述实施例的基础上,所述装置还用于:动态更新每个文件的权值。
具体的,所述装置还用于:动态更新每个文件的权值。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理装置,通过动态更新每个文件的权值,进一步能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
在上述实施例的基础上,所述装置还用于:在加载待检测的每个文件,以及每个文件之间的依赖关系的过程中,若检测到新增文件,则根据新增文件对应的新增依赖关系,更新每个文件的权值;若未检测到新增文件,但检测到特定文件新增了依赖关系,则根据新增的依赖关系,更新每个文件的权值。
具体的,所述装置还用于:在加载待检测的每个文件,以及每个文件之间的依赖关系的过程中,若检测到新增文件,则根据新增文件对应的新增依赖关系,更新每个文件的权值;若未检测到新增文件,但检测到特定文件新增了依赖关系,则根据新增的依赖关系,更新每个文件的权值。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理装置,通过在新增文件、以及新增依赖关系时更新每个文件的权值,进一步能够优化全程序静态检测的文件优先检测顺序,进而提高并行检测的检测效率。
本发明实施例提供的全程序静态检测的文件优先检测顺序的处理装置具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图10为本发明实施例提供的电子设备实体结构示意图,如图10所示,所述电子设备包括:处理器(processor)1001、存储器(memory)1002和总线1003;
其中,所述处理器1001、存储器1002通过总线1003完成相互间的通信;
所述处理器1001用于调用所述存储器1002中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:加载待检测的每个文件,以及每个文件之间的依赖关系;根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:加载待检测的每个文件,以及每个文件之间的依赖关系;根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:加载待检测的每个文件,以及每个文件之间的依赖关系;根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。
Claims (14)
1.一种全程序静态检测的文件优先检测顺序的处理方法,其特征在于,包括:
加载待检测的每个文件,以及每个文件之间的依赖关系;
根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;
启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
2.根据权利要求1所述的方法,其特征在于,所述根据所有文件之间的依赖关系,生成目标文件集合,包括:
根据所有文件之间的依赖关系,为每个文件生成权值;
按照权值数值的大小顺序、排列所有文件;
剔除需依赖其它文件的文件,并将剩余文件组成所述目标文件集合。
3.根据权利要求2所述的方法,其特征在于,所述目标文件集合根据检测结果进行动态更新,包括:
从所述目标文件集合剔除已检测完成的目标文件;
获取依赖已检测完成的目标文件的其它文件集合,并在所述其它文件集合中选取不依赖其它文件的指定文件;
并根据所述指定文件的权值数值大小,将所述指定文件补入到所述目标文件集合的相应位置,并重复执行所述从所述目标文件集合剔除已检测完成的目标文件,直到检测完成所有目标文件。
4.根据权利要求1所述的方法,其特征在于,所述根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测,包括:
根据启动的并行进程数,依次从所述目标文件集合选取与所述并行进程数相等的目标文件进行检测。
5.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
动态更新每个文件的权值。
6.根据权利要求5所述的方法,其特征在于,所述动态更新每个文件的权值,包括:
在加载待检测的每个文件,以及每个文件之间的依赖关系的过程中,若检测到新增文件,则根据新增文件对应的新增依赖关系,更新每个文件的权值;
若未检测到新增文件,但检测到特定文件新增了依赖关系,则根据新增的依赖关系,更新每个文件的权值。
7.一种全程序静态检测的文件优先检测顺序的处理装置,其特征在于,包括:
加载单元,用于加载待检测的每个文件,以及每个文件之间的依赖关系;
生成单元,用于根据所有文件之间的依赖关系,生成目标文件集合;所述目标文件集合中的每个目标文件都不依赖其它文件、且按照表示依赖关系程度大小的权值数值大小顺序依次排列;
检测单元,用于启动检测进程,并根据启动的并行进程数,依次从所述目标文件集合选取目标文件进行检测;其中,所述目标文件集合根据检测结果进行动态更新。
8.根据权利要求7所述的装置,其特征在于,所述生成单元具体用于:
根据所有文件之间的依赖关系,为每个文件生成权值;
按照权值数值的大小顺序、排列所有文件;
剔除需依赖其它文件的文件,并将剩余文件组成所述目标文件集合。
9.根据权利要求8所述的装置,其特征在于,所述检测单元具体用于:
从所述目标文件集合剔除已检测完成的目标文件;
获取依赖已检测完成的目标文件的其它文件集合,并在所述其它文件集合中选取不依赖其它文件的指定文件;
并根据所述指定文件的权值数值大小,将所述指定文件补入到所述目标文件集合的相应位置,并重复执行所述从所述目标文件集合剔除已检测完成的目标文件,直到检测完成所有目标文件。
10.根据权利要求7所述的装置,其特征在于,所述检测单元具体用于:
根据启动的并行进程数,依次从所述目标文件集合选取与所述并行进程数相等的目标文件进行检测。
11.根据权利要求7至10任一所述的装置,其特征在于,所述装置还用于:
动态更新每个文件的权值。
12.根据权利要求11所述的装置,其特征在于,所述装置还用于:
在加载待检测的每个文件,以及每个文件之间的依赖关系的过程中,若检测到新增文件,则根据新增文件对应的新增依赖关系,更新每个文件的权值;
若未检测到新增文件,但检测到特定文件新增了依赖关系,则根据新增的依赖关系,更新每个文件的权值。
13.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一所述的方法。
14.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811512752.0A CN109800077A (zh) | 2018-12-11 | 2018-12-11 | 全程序静态检测的文件优先检测顺序的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811512752.0A CN109800077A (zh) | 2018-12-11 | 2018-12-11 | 全程序静态检测的文件优先检测顺序的处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109800077A true CN109800077A (zh) | 2019-05-24 |
Family
ID=66556594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811512752.0A Pending CN109800077A (zh) | 2018-12-11 | 2018-12-11 | 全程序静态检测的文件优先检测顺序的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800077A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486840A (zh) * | 2020-12-15 | 2021-03-12 | 交控科技股份有限公司 | 静态测试方法及装置 |
CN112486470A (zh) * | 2020-12-15 | 2021-03-12 | 恩亿科(北京)数据科技有限公司 | 基于文件依赖关系自动调整文件窗口顺序的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000207248A (ja) * | 1999-01-14 | 2000-07-28 | Toshiba Corp | 並列プログラムの挙動生成装置及び方法並びに並列プログラムの挙動生成用ソフトウェアを記録した記録媒体 |
CN102054149A (zh) * | 2009-11-06 | 2011-05-11 | 中国科学院研究生院 | 一种恶意代码行为特征提取方法 |
US8549522B1 (en) * | 2007-07-19 | 2013-10-01 | American Megatrends, Inc. | Automated testing environment framework for testing data storage systems |
CN106294156A (zh) * | 2016-08-11 | 2017-01-04 | 北京邮电大学 | 一种静态代码缺陷检测分析方法及装置 |
CN108268319A (zh) * | 2016-12-31 | 2018-07-10 | 中国移动通信集团河北有限公司 | 任务调度方法、装置及系统 |
CN108614707A (zh) * | 2018-04-27 | 2018-10-02 | 深圳市腾讯网络信息技术有限公司 | 静态代码检查方法、装置、存储介质和计算机设备 |
-
2018
- 2018-12-11 CN CN201811512752.0A patent/CN109800077A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000207248A (ja) * | 1999-01-14 | 2000-07-28 | Toshiba Corp | 並列プログラムの挙動生成装置及び方法並びに並列プログラムの挙動生成用ソフトウェアを記録した記録媒体 |
US8549522B1 (en) * | 2007-07-19 | 2013-10-01 | American Megatrends, Inc. | Automated testing environment framework for testing data storage systems |
CN102054149A (zh) * | 2009-11-06 | 2011-05-11 | 中国科学院研究生院 | 一种恶意代码行为特征提取方法 |
CN106294156A (zh) * | 2016-08-11 | 2017-01-04 | 北京邮电大学 | 一种静态代码缺陷检测分析方法及装置 |
CN108268319A (zh) * | 2016-12-31 | 2018-07-10 | 中国移动通信集团河北有限公司 | 任务调度方法、装置及系统 |
CN108614707A (zh) * | 2018-04-27 | 2018-10-02 | 深圳市腾讯网络信息技术有限公司 | 静态代码检查方法、装置、存储介质和计算机设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486840A (zh) * | 2020-12-15 | 2021-03-12 | 交控科技股份有限公司 | 静态测试方法及装置 |
CN112486470A (zh) * | 2020-12-15 | 2021-03-12 | 恩亿科(北京)数据科技有限公司 | 基于文件依赖关系自动调整文件窗口顺序的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190080271A1 (en) | Coordinated Production and Transportation Scheduling Method and System Based on Improved Tabu Search Algorithm | |
US8307350B2 (en) | Multi level virtual function tables | |
CN109800936B (zh) | 基于树状搜寻的调度方法与使用该方法的电子装置 | |
CN106980571A (zh) | 一种测试用例集的构建方法和设备 | |
CN107423097B (zh) | 一种应用程序的管理方法和装置 | |
CN103473076A (zh) | 一种代码版本的发布方法及系统 | |
CN111506485A (zh) | 特征分箱方法、装置、设备及计算机可读存储介质 | |
CN108415912A (zh) | 基于MapReduce模型的数据处理方法和设备 | |
CN109379398A (zh) | 一种数据同步方法及装置 | |
CN109800077A (zh) | 全程序静态检测的文件优先检测顺序的处理方法及装置 | |
CN103049516A (zh) | 一种数据处理方法及装置 | |
Kizilay et al. | An iterated greedy algorithm for the hybrid flowshop problem with makespan criterion | |
CN109409746A (zh) | 一种生产调度方法及装置 | |
CN107491298A (zh) | 一种按钮对象自动扫描方法及系统 | |
CN107085613A (zh) | 入库文件的过滤方法和装置 | |
CN112765014B (zh) | 一种用于多用户同时操作的自动测试系统及工作方法 | |
CN108776698A (zh) | 一种基于Spark的抗偏斜的数据分片方法 | |
CN104572029A (zh) | 一种状态机可拼接性和拼接规则判定方法和装置 | |
CN106569734B (zh) | 数据洗牌时内存溢出的修复方法及装置 | |
CN109165325A (zh) | 用于切分图数据的方法、装置、设备以及计算机可读存储介质 | |
CN111626649B (zh) | 大数据处理方法和装置 | |
CN108536533A (zh) | 一种资源调整方法及装置 | |
CN111061640B (zh) | 一种软件可靠性测试用例筛选方法及系统 | |
CN105204997A (zh) | 软件缺陷检测方法及装置 | |
CN110046975A (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 |