CN113051226A - 系统级编译方法、电子设备及存储介质 - Google Patents

系统级编译方法、电子设备及存储介质 Download PDF

Info

Publication number
CN113051226A
CN113051226A CN202110611403.XA CN202110611403A CN113051226A CN 113051226 A CN113051226 A CN 113051226A CN 202110611403 A CN202110611403 A CN 202110611403A CN 113051226 A CN113051226 A CN 113051226A
Authority
CN
China
Prior art keywords
file
hash value
electronic device
address
files
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
Application number
CN202110611403.XA
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinhuazhang Technology Co ltd
Original Assignee
Xinhuazhang Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinhuazhang Technology Co ltd filed Critical Xinhuazhang Technology Co ltd
Priority to CN202110611403.XA priority Critical patent/CN113051226A/zh
Publication of CN113051226A publication Critical patent/CN113051226A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供一种系统级编译方法、电子设备及存储介质。该方法包括:接收第一文件,其中所述第一文件指定的存储地址为第一地址;确定所述第一文件的第一哈希值;在系统文件表中查找所述第一哈希值;以及响应于所述系统文件表中不存在所述第一哈希值,对所述第一文件执行指定操作;存储所述第一文件到所述第一地址;以及更新所述系统文件表以包括所述第一哈希值以及所述第一地址。

Description

系统级编译方法、电子设备及存储介质
技术领域
本公开涉及计算机软件技术领域,尤其涉及一种系统级编译方法、电子设备及存储介质。
背景技术
软件开发过程中,新代码文件在引入开发项目的时候,往往需要开发者对完整的开发项目下载到本地进行完整编译,然后将文件中的新代码进行增量编译后合并到完整项目。同时,新代码文件在被提交至服务器(或其他开发者的本地主机)后,服务器(或其他开发者的本地主机)无法准确的判断哪些文件是新的文件,因而需要重新编译增量后的完整项目,从而增加了服务器(或其他开发者的本地主机)的资源占用率和计算开销。
发明内容
有鉴于此,本公开提出了一种系统级编译方法、电子设备及存储介质。
本公开的第一方面,提供了一种系统级编译方法,接收第一文件,其中所述第一文件指定的存储地址为第一地址;确定所述第一文件的第一哈希值;在系统文件表中查找所述第一哈希值;以及响应于所述系统文件表中不存在所述第一哈希值,对所述第一文件执行指定操作;存储所述第一文件到所述第一地址;以及更新所述系统文件表以包括所述第一哈希值以及所述第一地址。
本公开的第二方面,提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
本公开的第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储电子装置的一组指令,该组指令用于使所述电子装置执行第一方面所述的方法。
这样,通过确定接收到的任意文件的哈希值,判断该哈希值是否已经被存储于系统文件表,能够节省大量的系统资源,无需对文件进行多次编译,从而在节省系统开销的同时,精准区分并确定新代码和原有代码。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开实施例所提供的一种示例性电子设备的结构示意图。
图2示出了一种传统编译方式的示意图。
图3A示出了根据本公开实施例的示例性文件传输方式的示意图。
图3B示出了根据本公开实施例的示例性系统文件表的示意图。
图4示出了本公开实施例所提供的一种系统级编译的示例性方法的流程示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
如上所述,传统方法中对新代码文件的确定由于经过多次重复的编译过程,会占用大量系统资源,增大系统开销。
并且,在传统方法中,往往在文件层面基于时间戳来确定新代码。例如,获取文件时,默认将获取时间认定为该文件的被修改时间。但是,当一个项目有多人同时修改同一个文件时,单纯的时间戳无法确定修改的发生。例如,没有加入新代码,仅仅是对文件进行写入的操作,也会被时间戳认定为该文件被修改,但实质上并未产生新代码,这便会造成对新代码认定出现偏差的问题。所以,传统的时间戳仅可以判断同一个文件是否被修改,而无法确定在一个项目的多个拷贝中某个特定文件的内容是否相同,也无法节约对于具有相同内容的文件的重复编译。
有鉴于此,本公开实施例提供了一种系统级编译方法,所述方法包括:接收第一文件,其中所述第一文件指定的存储地址为第一地址;确定所述第一文件的第一哈希值;在系统文件表中查找所述第一哈希值;以及响应于所述系统文件表中不存在所述第一哈希值,对所述第一文件执行指定操作;存储所述第一文件到所述第一地址;以及更新所述系统文件表以包括所述第一哈希值以及所述第一地址。
本公开实施例提供的系统级编译方法、电子设备及存储介质,接收第一文件,并确定第一文件的第一哈希值;在系统文件表中查找第一哈希值;若系统文件表中不存在第一哈希值,则对第一文件执行指定操作,将第一文件存储至第一文件指定的第一地址;更新系统文件表以在系统文件表中存储第一哈希值以及第一地址。这样,通过确定接收到的任意文件的哈希值,判断该哈希值是否已经被存储于系统文件表,能够节省大量的系统资源,无需对文件进行多次编译,从而在节省系统开销的同时,精准区分并确定新代码和原有代码。
图1示出了本公开实施例所提供的一种示例性电子设备100的结构示意图。电子设备100例如可以是计算机主机。该电子设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在设备内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路。处理器102可以用于执行与本公开描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图1所示,存储的数据可以包括程序指令(例如,用于实现本公开的技术方案的程序指令)以及待处理的数据(例如,存储器104可以存储在编译过程产生的临时代码)。处理器102也可以访问存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向电子设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将电子设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在电子设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述设备仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本公开实施例方案所必需的组件,而不必包含图中所示的全部组件。
图2示出了一种编译方式200的示意图。
如图2所示,以服务器220和任意一个开发者主机202之间的交互为例。开发者主机202从服务器220上下载“A”、“B”和“C”这三个文件204、206和208,并对下载的全部文件204、206和208进行编译得到对象文件210、212和214(例如,“O(A)”、“O(B)”、“O(C)”)。开发者根据需求对某个或多个文件进行修改,例如将文件204修改为文件216(例如,“A1”),并对修改后的文件216进行编译得到二进制文件218(例如,“O(A1)”)。由开发者主机202将修改后的文件216上传至服务器220后,服务器220对文件216、206、208进行编译得到二进制文件218、212、214。这样,在编译过程中就会出现多次重复的编译操作,因此会造成系统资源的浪费,加大了计算开销。
图3A示出了根据本公开实施例的示例性文件传输方式310的示意图。
如图3A所示,电子设备100可以是一个具有处理器和存储器的计算装置(例如,台式计算机、笔记本计算机等)。电子设备100可以接收文件312,其中文件312指定存储地址为地址314。电子设备100可以确定文件312的哈希值316,其中,哈希函数可以采用SHA(SecureHash Algorithm,也即安全散列算法)、MD5(MD5 Message-Digest Algorithm,也即MD5信息摘要算法)、或者其他散列性优秀的哈希函数。可以理解的是,电子设备100可以是公司服务器、个人电脑等。
文件312可以包括文本文件、源代码文件和二进制文件,其中文本文件的哈希值可以为其内容的哈希值。二进制文件可以包括object文件(也即对象文件)、archive文件(也即归档文件)和executable文件(也即可执行文件),其中executable文件包括动态链接库文件。对于二进制文件而言,其哈希值由依赖文件的哈希值($S)、指定操作命令行的哈希值($C)以及生成该二进制文件的环境的哈希值($E)决定。二进制文件的哈希值可以表示为hash(concat($S, $C, $E))。其中指定操作命令行的哈希值($C)可以包括编译、归档或链接命令的哈希值,生成该二进制文件的环境的哈希值($E)可以指编译环境的文本表示的哈希值,而文本表示可以包括操作系统版本、硬件平台、编译器及版本和第三方库及版本。
需要说明的是,以文件312为源代码文件为例,编译文件312可以产生object文件,编译object文件可以产生archive文件,而executable文件的产生往往依赖于对object文件和archive文件的编译。
以object文件为例,object文件的依赖文件为源代码文件,电子设备100可以通过函数SHA(source file)来确定object文件的$S。电子设备100可以通过函数SHA(compilation command line)来确定object文件的$C。电子设备可以通过函数SHA(env’stext representation)来确定object文件的$E。类似的,archive文件和executable文件也可以用3个哈希值来表示。其中,对于源代码文件而言,可以直接用其内容的哈希值来表示。
其中,依赖文件可以是会影响到文件312的所有现有文件。例如,当文件312为object文件,则其依赖文件可以指产生文件312的C/CPP源代码文件,以及源代码文件包含的所有头文件。当文件312为archive文件,则其依赖文件可以指产生文件312的所有object文件。当文件312为executable文件,则其依赖文件可以指产生文件312的所有object和archive文件。文件312的依赖文件可以由多个,因此依赖文件的哈希值$S可以表示为
Figure 270088DEST_PATH_IMAGE001
其中,
Figure 76239DEST_PATH_IMAGE002
表示哈希函数,
Figure 546534DEST_PATH_IMAGE003
表示连接多个字符串的连接函数,
Figure 214276DEST_PATH_IMAGE004
表示多个依赖文件的哈希值。
需要说明的是,$S,$C,$E均不依赖于编译、归档或链接操作,因此电子设备100可以在操作执行前得到哈希值316。
在一些实施例中,电子设备100可以确定现有的存储在电子设备100的多个文件的哈希值,并且将多个文件的哈希值以及与哈希值对应的多个存储地址进行统一存储。
图3B示出了根据本公开实施例的示例性系统文件表320的示意图。
如图3B所示,为了判断接收的文件312是否为新产生的文件,电子设备100可以在系统文件表320中查找哈希值316,从而确定哈希值316是否存在于系统文件表320。如果系统文件表320中不存在哈希值316,则证明文件312为新产生的文件,电子设备100可以对文件312执行指定操作,并可以将文件312存储到地址314。电子设备100可以更新系统文件表320,使得更新后的系统文件表320中包括哈希值316和地址314。其中,指定操作包括编译、归档或链接中的至少一个。
在一些实施例中,系统文件表320包括多个文件的哈希值322、324、326以及与哈希值对应的多个存储地址328、330、332,并且根据任意一个文件的哈希值可以索引到该文件的存储地址,从而获取该文件。在一些实施例中,根据任意一个文件的存储地址也可以索引到该文件的哈希值。
在一些实施例中,文件312可以为源代码文件,多个文件中可以包括文件312的关联文件。电子设备100可以编译文件312以生成对象文件(例如,图2的对象文件210、212、214或218等),基于对象文件以及关联文件生成可执行文件。电子设备100可以更新系统文件表320,使得更新后的系统文件表320可以包括可执行文件的存储地址以及可执行文件的哈希值。
在一些实施例中,电子设备100在系统文件表320中找到了哈希值316,则证明文件312不是新产生的文件,文件312已经存储于系统文件表320。因此,电子设备100在地址314处生成符号链接,其中符号链接指向与哈希值316对应的存储地址。
需要说明的是,在电子设备100更新系统文件表320的过程中,对CPU时间和占用的磁盘空间非常小,因此基本可以忽略。并且,对于编译文件312的过程,因为仅仅在电子设备100对文件312执行指定操作时进行了编译操作,并未出现重复的编译过程,所以编译操作的开销可以近似为在不同文件的存储地址处建立符号链接和计算各文件的哈希值的开销。
在一些实施例中,所有文件只存储于电子设备100,在文件对应的哈希值已经存储于系统文件表320的情况下,开发者想要访问该文件,可以通过先前建立的符号链接访问到该文件。这样,开发者无需下载该文件便能够访问该文件,大大减少了系统开销和开发者主机的资源占用率。
在一些实施例中,假设开发者开发的项目所包括的源代码文件数量可以为S,经过电子设备100的修改,一段时间内的提交数量为C,如所述的传统方法中,每次提交修改后文件的开销近似于o(S),所有提交操作的总开销为o(S*C)。而在本公开所提供的方法中,由于所有文件仅有一份且存储于电子设备100中,因此系统的总开销近似为o(S),因此在CPU和存储空间上均可得到C倍的提升。
图4示出了本公开实施例所提供的一种系统级编译的示例性方法400的流程示意图。
本公开实施例提供的系统级编译的方法400可以由例如电子设备100执行,并可以包括以下步骤。
在步骤402,电子设备100可以接收第一文件(例如,图3A的文件312),其中所述第一文件指定的存储地址为第一地址(例如,图3A的地址314)。
在步骤404,电子设备100可以确定所述第一文件的第一哈希值(例如,图3A的哈希值316)。
在一些实施例中,所述第一文件可以是源代码文件。为了确定所述第一文件的第一哈希值,电子设备100可以根据所述源代码文件的文本内容确定所述第一哈希值。
在一些实施例中,所述环境的哈希值可以包括所述环境的文本表示的哈希值,其中所述文本表示可以包括操作系统版本、硬件平台、编译器及版本和第三方库及版本。
在一些实施例中,所述第一文件的依赖文件的哈希值可以表示为
Figure 148734DEST_PATH_IMAGE005
其中,
Figure 345360DEST_PATH_IMAGE006
表示哈希函数,
Figure 817798DEST_PATH_IMAGE007
表示连接函数,
Figure 820390DEST_PATH_IMAGE008
表示多个所述依赖文件的哈希值。
在步骤406,电子设备100可以在系统文件表(例如,图3B的系统文件表320)中查找所述第一哈希值。在一些实施例中,所述系统文件表可以包括所述多个文件的哈希值(例如,图3B的哈希值322、324或326)以及与所述哈希值对应的多个存储地址(例如,图3B的地址328、330或332)。
在步骤408,响应于所述系统文件表中不存在所述第一哈希值,电子设备100可以:对所述第一文件执行指定操作;存储所述第一文件到所述第一地址;以及更新所述系统文件表以包括所述第一哈希值以及所述第一地址。
在一些实施例中,所述第一文件可以是可执行文件、对象文件或归档文件。为了确定所述第一文件的第一哈希值,电子设备100可以:确定所述第一文件的依赖文件的哈希值、所述指定操作的哈希值以及生成所述第一文件的环境的哈希值;以及基于所述依赖文件的哈希值、所述指定操作的哈希值以及所述环境的哈希值生成所述第一哈希值。所述指定操作可以包括编译、归档或链接的至少一个。
在一些实施例中,所述第一文件可以是源代码文件,所述多个文件中包括所述第一文件的关联文件,并且在所述对所述第一文件执行指定操作中,电子设备100可以:编译所述第一文件以生成第一对象文件(例如,图2的218);基于所述第一对象文件以及所述关联文件生成可执行文件;以及更新所述系统文件表以包括所述可执行文件的存储地址以及所述可执行文件的哈希值。
在一些实施例中,响应于所述系统文件表中存在所述第一哈希值,电子设备100可以在所述第一地址生成符号链接,所述符号链接指向与所述第一哈希值对应的存储地址。
本公开实施例提供的系统级编译方法、电子设备及存储介质,接收第一文件,并确定第一文件的第一哈希值;在系统文件表中查找第一哈希值;若系统文件表中不存在第一哈希值,则对第一文件执行指定操作,将第一文件存储至第一文件指定的第一地址;更新系统文件表以在系统文件表中存储第一哈希值以及第一地址。
这样,通过确定接收到的任意文件的哈希值,判断该哈希值是否已经被存储于系统文件表,能够节省大量的系统资源,无需对文件进行多次编译,从而在节省系统开销的同时,精准区分并确定新代码和原有代码。
需要说明的是,本公开的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
本公开实施例还提供存储了指令的计算机可读存储介质。该指令在被执行时用于进行上述方法。该计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述对本公开特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (10)

1.一种系统级编译方法,包括:
接收第一文件,其中所述第一文件指定的存储地址为第一地址;
确定所述第一文件的第一哈希值;
在系统文件表中查找所述第一哈希值;以及
响应于所述系统文件表中不存在所述第一哈希值,
存储所述第一文件到所述第一地址;以及
更新所述系统文件表以包括所述第一哈希值以及所述第一地址。
2.根据权利要求1所述的方法,其中,所述系统文件表包括所述多个文件的哈希值以及与所述哈希值对应的多个存储地址,所述方法进一步包括:
对所述第一文件执行指定操作,其中所述指定操作包括编译、归档或链接的至少一个。
3.根据权利要求1或2所述的方法,进一步包括:
响应于所述系统文件表中存在所述第一哈希值,在所述第一地址生成符号链接,所述符号链接指向与所述第一哈希值对应的存储地址。
4.根据权利要求2所述的方法,其中,所述第一文件是源代码文件,所述多个文件中包括所述第一文件的关联文件并且所述对所述第一文件执行指定操作进一步包括:
编译所述第一文件以生成第一对象文件;
基于所述第一对象文件以及所述关联文件生成可执行文件;以及
更新所述系统文件表以包括所述可执行文件的存储地址以及所述可执行文件的哈希值。
5.根据权利要求2所述的方法,其中,所述第一文件是可执行文件、对象文件或归档文件,并且所述确定所述第一文件的第一哈希值进一步包括:
确定所述第一文件的依赖文件的哈希值、所述指定操作的哈希值以及生成所述第一文件的环境的哈希值;以及
基于所述依赖文件的哈希值、所述指定操作的哈希值以及所述环境的哈希值生成所述第一哈希值。
6.根据权利要求5所述的方法,其中,所述环境的哈希值包括所述环境的文本表示的哈希值,其中所述文本表示包括操作系统版本、硬件平台、编译器及版本和第三方库及版本。
7.根据权利要求5所述的方法,其中,所述第一文件的依赖文件的哈希值表示为
Figure 323162DEST_PATH_IMAGE002
其中,
Figure 505882DEST_PATH_IMAGE004
表示哈希函数,
Figure 754461DEST_PATH_IMAGE006
表示连接函数,
Figure 352932DEST_PATH_IMAGE008
表示多个所述依赖文件的哈希值。
8.根据权利要求4所述的方法,其中,所述第一哈希值由所述第一文件的文本内容确定。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至8任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储电子装置的一组指令,该组指令用于使所述电子装置执行权利要求1至8任意一项所述的方法。
CN202110611403.XA 2021-06-02 2021-06-02 系统级编译方法、电子设备及存储介质 Pending CN113051226A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110611403.XA CN113051226A (zh) 2021-06-02 2021-06-02 系统级编译方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110611403.XA CN113051226A (zh) 2021-06-02 2021-06-02 系统级编译方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113051226A true CN113051226A (zh) 2021-06-29

Family

ID=76518660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110611403.XA Pending CN113051226A (zh) 2021-06-02 2021-06-02 系统级编译方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113051226A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649721A (zh) * 2016-12-22 2017-05-10 创新科存储技术有限公司 一种文件排重方法和装置
CN109582642A (zh) * 2018-11-08 2019-04-05 网宿科技股份有限公司 文件存储方法、删除方法、服务器及存储介质
CN111176654A (zh) * 2019-11-18 2020-05-19 浙江大学 一种基于多用户缓存的物联网应用在线编译方法
CN112783508A (zh) * 2021-02-01 2021-05-11 北京百度网讯科技有限公司 文件的编译方法、装置、设备以及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649721A (zh) * 2016-12-22 2017-05-10 创新科存储技术有限公司 一种文件排重方法和装置
CN109582642A (zh) * 2018-11-08 2019-04-05 网宿科技股份有限公司 文件存储方法、删除方法、服务器及存储介质
CN111176654A (zh) * 2019-11-18 2020-05-19 浙江大学 一种基于多用户缓存的物联网应用在线编译方法
CN112783508A (zh) * 2021-02-01 2021-05-11 北京百度网讯科技有限公司 文件的编译方法、装置、设备以及存储介质

Similar Documents

Publication Publication Date Title
US10990367B2 (en) Application development method, tool, and device, and storage medium
US8543543B2 (en) Hash-based file comparison
US20140372998A1 (en) App package deployment
CN111176717B (zh) 生成安装包的方法、装置及电子设备
US11144286B2 (en) Generating synchronous digital circuits from source code constructs that map to circuit implementations
JPWO2016121442A1 (ja) 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム
US9436487B2 (en) Method and apparatus for creating a platform agnostic application file
US11775269B2 (en) Generating a synchronous digital circuit from a source code construct defining a function call
WO2015195418A1 (en) Software package management
CN111309335A (zh) 插件应用的编译方法、装置及计算机可读存储介质
WO2019041891A1 (zh) 升级包的生成方法及装置
US20170249143A1 (en) Detecting open source components built into mobile applications
CN112395253A (zh) 索引文件生成方法、终端设备、电子设备及介质
CN112882694A (zh) 一种程序编译方法、装置、电子设备及可读存储介质
CN113407165B (zh) Sdk的生成和自升级方法、装置、可读介质和设备
CN113094085B (zh) 组件集成方法、装置、计算机可读存储介质及电子设备
WO2023207418A1 (zh) 一种sdk升级方法、装置以及计算机设备
CN113051226A (zh) 系统级编译方法、电子设备及存储介质
CN115586872A (zh) 一种容器镜像管理方法、装置、设备及存储介质
CN115714706A (zh) 基于内嵌h5的访问加速系统、方法、存储介质及电子设备
US8683455B1 (en) Method and system for optimizing an executable program by selectively merging identical program entities
CN111858314A (zh) 一种对vue进行状态管理的方法、系统、设备及介质
CN116483597B (zh) 一种数据共享方法、装置、设备和存储介质
CN111273944B (zh) 生成程序文件并上传至代码仓库的方法及装置
CN114185556A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210629

RJ01 Rejection of invention patent application after publication