CN115543327A - 代码存储方法、装置及设备 - Google Patents
代码存储方法、装置及设备 Download PDFInfo
- Publication number
- CN115543327A CN115543327A CN202110733376.3A CN202110733376A CN115543327A CN 115543327 A CN115543327 A CN 115543327A CN 202110733376 A CN202110733376 A CN 202110733376A CN 115543327 A CN115543327 A CN 115543327A
- Authority
- CN
- China
- Prior art keywords
- compiled
- code
- programming block
- compiling
- programming
- 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
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
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- 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
- G06F8/44—Encoding
- G06F8/441—Register allocation; Assignment of physical memory space to logical memory space
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
技术领域
本发明涉及互联网技术领域,尤其涉及一种代码存储方法、装置及设备。
背景技术
随着社会的发展和进步,以及计算机科学的飞速发展,编程成为了现代人一项越来越重要的基本能力,而不仅仅是IT行业人员的专职工作。任何年龄、任何基础的人员都有越来越强的学习和体验程序编写的需求,图形化编程工具随着时代的发展应运而生。使用图形化编程工具,用户仅仅通过拖拽编程组件,就能独立完成具有复杂逻辑的程序编写。
目前,图形化编程工具通常都是先确定用户拖拽的多个编程组件,然后,针对该多个编程组件进行对应的代码编译。由于代码编译需要耗费一定的时长以及资源,因此,当用户过多或者待编译的代码较长时,图像化编程工具通常不能及时地编译,从而导致用户体验较差。
发明内容
本发明实施例提供一种代码存储方法、装置及设备,以解决相关技术中图像化编程工具编码时间过长导致用户体验较差的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,提供了一种代码存储方法,所述方法包括:
获取待编译的编程块的标识;
确定所述标识对应的编程块被历史编译的次数是否处于预设阈值区间;
当所述标识对应的编程块被历史编译的次数处于预设阈值区间时,根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储;其中,所述指定状态等级值至少包括以下之一:编译难度等级值、存储量等级值、编译频率等级值、组合率等级值以及舆情匹配等级值;
当确定对所述待编译的编程块编译后的代码进行存储时,对所述待编译的编程块编译后的代码进行存储。
第二方面,提供了一种代码存储装置,所述装置包括:
获取模块,用于获取待编译的编程块的标识;
第一确定模块,用于确定所述标识对应的编程块被历史编译的次数是否处于预设阈值区间;
第二确定模块,用于当所述标识对应的编程块被历史编译的次数处于预设阈值区间时,根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储;其中,所述指定状态等级值至少包括以下之一:编译难度等级值、存储量等级值、编译频率等级值、组合率等级值以及舆情匹配等级值;
存储模块,用于当确定对所述待编译的编程块编译后的代码进行存储时,对所述待编译的编程块编译后的代码进行存储。
第三方面,提供了代码存储设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述第一方面所述的方法的步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法的步骤。
本发明实施例提供的上述至少一个技术方案可以达到如下技术效果:
在本发明实施例提供的技术方案中,可以确定待编译的编程块的历史编程次数,并在历史编程次数较多的情况下,根据该编程块对应的指定状态等级值来综合确定该编程块后续的编译概率以及编译价值,并对编译概率以及编译价值较高的编程块进行存储,以使得后续再对该编程块进行编译时,可以直接获取该编程块编译后的代码,从而可以有效减小编译时间以及编译压力,提升用户体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一个实施例提供的代码存储方法的流程示意图;
图2为本发明一个实施例提供的代码存储装置的模块组成示意图;
图3为本发明一个实施例提供的代码存储设备的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图,详细说明本发明各实施例提供的技术方案。
请参见图1,图1为本发明一个实施例提供的代码存储方法的流程示意图,如图1所示,该方法包括以下步骤:
步骤102:获取待编译的编程块的标识。
步骤104:确定标识对应的编程块被历史编译的次数是否处于预设阈值区间。
步骤106:当标识对应的编译次数处于预设阈值区间时,根据待编译的编程块对应的指定状态等级值确定是否对待编译的编程块编译后的代码进行存储;其中,指定状态等级值至少包括以下之一:编译难度等级值、存储量等级值、编译频率等级值、组合率等级值以及舆情匹配等级值。
步骤108:当确定对待编译的编程块编译后的代码进行存储时,对待编译的编程块编译后的代码进行存储。
在本实施例中,可以获取待编译的编程块的标识。例如,图形化编程工具可以确定用户选定的编程组件,如用户手动点选的编程组件、拖拽到编译区域的编程组件等,然后,可以获取用户选定的编程组件的标识,如编号、序列号、ID等。
在获取到待编译的编程块的标识后,可以确定该标识对应的编译次数是否处于预设阈值区域,其中,该标识对应的编译次数为该标识对应的编程块被历史编译的次数。即,在获取到待编译的编程块的标识后,可以确定该标识对应的编程块被历史编译的次数是否处于预设阈值区间。
在本发明实施例中,可以设置对应于较多次数的预设阈值区间,则当该标识对应的编程块被历史编译的次数处于预设阈值区间时,可以确定该标识对应的编程块被历史编译的次数较多。
当待编译的编程块被历史编译的次数处于预设阈值区间时,可以确定待编译的编程块对应的指定状态等级值。
其中,在本发明实施例中,指定状态等级值可以至少包括以下之一:编译难度等级值、存储量等级值、编译频率等级值、组合率等级值以及舆情匹配等级值。
在本发明实施例中,当待编译的编程块被历史编译的次数处于预设阈值区间时,可以确定待编译的编程块被历史编译的次数较多,此时,可以进一步确定待编译的编程块对应的指定状态等级值。
在一个发明实施例中,指定状态等级值可以包括编译难度等级值,则在确定待编译的编程块对应的指定状态等级值时,可以确定待编译的编程块对应的编译难度等级值。
在本发明实施例中,可以根据待编译的编程块被历史编译时的编译时长以及预设编译时长阈值来确定待编译的编程块对应的编译难度等级值。其中,若待编译的编程块被历史编译的次数大于1,则可以进一步获取待编译的编程块被历史编译时的平均编译时长,并根据待编译的编程块被历史编译时的平均编译时长以及预设编译时长阈值来确定待编译的编程块对应的指定状态等级值。
例如,预设编译时长阈值可以为5秒,待编译的编程块被历史编译时的编译时长可以为4秒,则可以为待编译的编程块确定较小的编译难度等级值;预设编译时长可以为5秒,待编译的编程块被历史编译时的编译时长可以为7秒,则可以为待编译的编程块确定较大的编译难度等级值。
当然,本发明实施例中可以预设一个或多个不同的编译时长阈值,基于该一个或多个不同的编译时长阈值,可以为多个不同的编程块确定两个或多于两个的编译难度等级值。
在一个发明实施例中,指定状态等级值可以包括存储量等级值,则在确定待编译的编程块对应的指定状态等级值时,可以确实待编译的编程块对应的存储量等级值。
在本发明实施例中,可以根据待编译的编程块被历史编译后得到的代码所占的存储量以及预设存储量阈值来确定待编译的编程块对应的存储量等级值。
需要说明的是,在本发明实施例中,当待编译的编程块被历史编译后得到的代码所占的存储量越大时,待编译的编程块对应的存储量等级值越小;当待编译的编程块被历史编译后得到的代码所占的存储量越小时,待编译的编程块对应的存储量等级值越大。
例如,预设存储量阈值可以为1MB,待编译的编程块被历史编译后得到的代码所占的存储量可以为0.8MB,则可以为待编译的编程块确定较大的存储量等级值;预设编译时长可以为1MB,待编译的编程块被历史编译时的编译时长可以为1.4MB,则可以为待编译的编程块确定较小的存储量等级值。
当前,本发明实施例中可以预设一个或多个不同的存储量阈值,基于该一个或多个不同的存储量阈值,可以为多个不同的编程块确定两个或多于两个的存储量等级值。
在一个发明实施例中,指定状态等级值可以包括编译频率等级值,则在确定待编译的编程块对应的指定状态等级值时,可以确实待编译的编程块对应的编译频率等级值。
在本发明实施例中,可以根据待编译的编程块在指定历史时间段内被编译的次数以及编译次数阈值确定待编译的编程块对应的编译频率等级值。
例如,预设编译次数阈值可以为5次,待编译的编程块在指定历史时间段内,如24小时内,被编译的次数可以为4次,则可以为待编译的编程块确定较小的编译频率等级值;预设编译次数阈值可以为5次,待编译的编程块在指定历史时间段内,如24小时内,被编译的次数可以为7次,则可以为待编译的编程块确定较大的编译频率等级值。
当前,本发明实施例中可以预设一个或多个不同的编译次数阈值,基于该一个或多个不同的编译次数阈值,可以为多个不同的编程块确定两个或多于两个的编译频率等级值。
在一个发明实施例中,指定状态等级值可以包括组合率等级值,则在确定待编译的编程块对应的指定状态等级值时,可以确定待编译的编程块对应的组合率等级值。
在本发明实施例中,在确定待编译的编程块对应的组合率等级值时,可以先从当前未编译完成的编程块中选取出至少一个第一编程块,得到第一编程块编译后的第一目标代码,以及从当前已存储的编译后的代码中选取出至少一个第二目标代码。
其中,已存储的编译后的代码是在对编程块进行编译后,对编译后的代码进行存储得到的,本发明实施例中的第二目标代码可以是从这些已存储的编译后的代码中选取的。
在选取了第一目标代码以及第二目标代码后,可以将待编译的编程块编译后的第三目标代码、第一目标代码以及第二目标代码分别进行两两组合,得到两两组合后的运行结果,并获取第二目标代码与第一目标代码组合后的运行结果的第一成功率、第三目标代码与第一目标代码组合后的运行结果的第二成功率,以及第二目标代码与第三目标代码组合后的运行结果的第三成功率。
例如,第一目标代码可以为4个,第二目标代码可以为2个,这2个第二目标代码与这4个第一目标代码分别进行组合并进行运行后,得到的运行结果可以分别为:失败、失败、成功、成功,以及失败、成功、失败、失败,则可以确定第二目标代码与第一目标代码组合后的运行结果的第一成功率为:第三目标代码与这4个第一目标代码分别进行组合并进行运行后,得到的运行结果可以分别为:成功、失败、成功、成功,则可以确定第三目标代码与第一目标代码组合后的运行结果的第二成功率可以为第三目标代码与这2个第二目标代码分别进行组合并进行运行后,得到的运行结果可以分别为:成功、失败,则可以确定第二目标代码与第三目标代码组合后的运行结果的第三成功率为:
需要说明的是,第一目标代码的数量可以大于第二目标代码的数量,也可以不大于第二目标代码的数量,本实施例对此不做限制。
在获取到第一成功率、第二成功率以及第三成功率后,可以根据第二成功率与第一成功率的比值,以及第三成功率,来确定待编译的编程块的组合率等级值。
在一个实施例中,可以根据第二成功率与第一成功率的比值和第三成功率之和,以及预设的组合率阈值,来确定待编译的编程块的组合率等级值。
例如,预设的组合率阈值可以为1.5、第一成功率可以为0.375、第二成功率可以为0.75、第三成功率可以为0.5,则第二成功率与第一成功率的比值和第三成功率之和可以为由于第二成功率与第一成功率的比值和第三成功率之和大于预设的组合率阈值,因此,可以为待编译的编程块确定较大的组合率等级值。
当前,本发明实施例中可以预设一个或多个不同的组合率阈值,基于该一个或多个不同的组合率阈值,可以为多个不同的编程块确定两个或多于两个的组合率等级值。
在一个发明实施例中,指定状态等级值可以包括舆情匹配等级值,则在确定待编译的编程块对应的指定状态等级值时,可以确定待编译的编程块对应的持续时长等级值。
在本发明实施例中,在确定待编译的编程块对应的持续时长等级值时,可以先获取待编译的编程块编译后的代码,然后,可以将待编译的编程块编译后的代码的运行结果与监控到的热门舆情进行匹配,得到舆情匹配程度值,并根据舆情匹配程度值,以及预设的舆情匹配阈值来确定待编译的编程块对应的舆情匹配等级值。
在本发明实施例中,热门舆情可以包括当前的热门话题、热门新闻、热门搜索词等。本发明实施例中的热门舆情可以是根据现有的爬虫工具从热门网站、热门社交应用、热门视频平台、热门直播等爬取的,例如,从新闻联播、微博、抖音、微信等爬取的,由于爬取过程可以基于现有技术来实现,故本方案不再赘述。
在确定一个舆情是否为热门舆情时,可以根据舆情的来源网站的确定策略来进行确定,例如,当来源网站上有舆情热度榜时,可以将舆情热度榜上的舆情确定为热门舆情。也可以根据预设的热门舆情确定策略来进行确定,例如,搜索量、访问量、转发量等达到预设阈值时,才将舆情确定为热门舆情。本发明对热门舆情的确定方式不作限制。
在获取热门舆情后,可以获取待编译的编程块编译后的代码的运行结果,对运行结果进行识别,得到至少一个识别结果,其中,识别结果可以包括且不限于:物品、音乐、字词。然后,可以将识别结果与热门舆情进行匹配,得到舆情匹配程度值。
在一个示例中,可以爬取到热门舆情,如″除夕″、″春节″、″饺子″、″鞭炮″、″春联″、″春晚″等。
在爬取到热门舆情后,可以确定上述识别结果与热门舆情是否为同义词,并在任一识别结果与任一热门舆情为同义词的情况下进行同义词数量统计。在将所有的识别结果与所有热门舆情进行同义词匹配后,获取统计的同义词数量,并根据同义词数量来得到待编译的编程块编译后的代码的运行结果与热门舆情的舆情匹配程度值。
例如,在对待编译的编程块编译后的代码的运行结果进行物品识别后,可以识别得到″饺子″、″春联″以及″鞭炮″,爬取到的热门舆情可以包括″除夕″、″春节″、″饺子″、″鞭炮″、″春联″以及″春晚″。可以将上述3个识别结果分别与这6个热门舆情分别进行同义词匹配,当确定为同义词时,如识别结果中的″饺子″与热门舆情″饺子″,则可以将同义词数量加1,由上述识别结果以及热门舆情可知,同义词数量为3。然后,可以根据同义词数量来确定舆晴匹配程度值,其中,同义词数量越多,舆情匹配程度值越大。
在一个示例中,舆情匹配程度值可以为识别结果以及热门舆情的同义词数量,例如,当识别结果以及热门舆情的同义词数量为3时,舆情匹配程度值可以为3。
在本发明的一个实施例中,指定状态等级值可以至少包括以下之一:编译难度等级值、存储量等级值、编译频率等级值、组合率等级值以及舆情匹配等级值。
当指定状态等级值仅包括其中之一时,例如,只包括组合率等级值时,可以直接将包括的这种值确定为指定状态等级值,如直接将组合率等级值确定为指定状态等级值。
当指定状态等级值包括多种值时,如同时包括存储量等级值以及舆情匹配等级值时,可以将包括的多种值与对应的预设权重值相乘,得到多个乘积,然后,将乘积之和作为指定状态等级值。
需要说明的是,本发明实施例中,指定状态等级值包括的各种值对应的预设权重,可以相同,也可以不同,本发明实施例不做限制。例如,组合率等级值对应的预设权重,与舆情匹配等级值对应的预设权重可以相同,也可以不相同。
在本发明实施例中,若确定待编译的编程块对应的指定状态等级值较大,例如,不小于预设的指定状态等级阈值,则可以确定对待编译的编程块编译后的代码进行存储;若确定待编译的编程块对应的指定状态等级值较小,例如,小于预设的指定状态等级阈值,则可以确定不对待编译的编程块编译后的代码进行存储。
在确定对待编译的编程块编译后的代码进行存储时,可以对待编译的编程块编译后的代码进行存储。
在本发明实施例中,在对待编译的编程块编译后的代码进行存储后,可以基于预设周期来重新确定其对应的指定状态等级值,并根据重新确定的指定状态等级值来重新确定是否仍对该编译后的代码进行存储。
其中,当指定状态等级值包括舆情匹配等级值,可以基于第一预设周期来重新确定待编译的编程块对应的指定状态等级值,并根据重新确定的指定状态等级值来重新确定是否继续对待编译的编程块编译后的代码进行存储;当指定状态等级值不包括舆晴匹配等级值时,基于第二预设周期来重新确定待编译的编程块对应的指定状态等级值,并根据重新确定的指定状态等级值来重新确定是否继续对待编译的编程块编译后的代码进行存储。其中,第一预设周期可以小于第二预设周期。
在本发明实施例提供的技术方案中,可以确定待编译的编程块的历史编程次数,并在历史编程次数较多的情况下,根据该编程块对应的指定状态等级值来综合确定该编程块后续的编译概率以及编译价值,并对编译概率以及编译价值较高的编程块进行存储,以使得后续再对该编程块进行编译时,可以直接获取该编程块编译后的代码,从而可以有效减小编译时间以及编译压力,提升用户体验。
在本发明实施例中,可以分别从编译难度、存储量、编译频率、组合率以及舆情匹配等多个维度来确定编译后的代码的后续编译概率以及存储价值,并对后续编译概率较高以及存储价值较高的代码进行存储,使得有限的存储空间可以发挥出更大的价值,从而更好地满足用户的需求,提升用户体验。
对应上述代码存储方法,本发明实施例还提供了一种代码存储装置,图2为本发明实施例提供的代码存储装置的模块组成示意图,如图2所示,该代码存储装置包括:
第一获取模块201,用于获取待编译的编程块的标识;
第一确定模块202,用于确定所述标识对应的编程块被历史编译的次数是否处于预设阈值区间;
第二确定模块203,用于当所述标识对应的编程块被历史编译的次数处于预设阈值区间时,根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储;其中,所述指定状态等级值至少包括以下之一:编译难度等级值、存储量等级值、编译频率等级值、组合率等级值以及舆情匹配等级值;
存储模块204,用于当确定对所述待编译的编程块编译后的代码进行存储时,对所述待编译的编程块编译后的代码进行存储。
可选的,所述指定状态等级值包括所述编译难度等级值;该代码存储装置还包括(图2中未示出):
第三确定模块205,用于在所述根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储之前,根据所述待编译的编程块被历史编译时的编译时长以及预设编译时长阈值确定所述待编译的编程块对应的编译难度等级值。
可选的,所述指定状态等级值包括所述存储量等级值;该代码存储装置还包括(图2中未示出):
第四确定模块206,用于在所述根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储之前,根据所述待编译的编程块被历史编译后得到的代码所占的存储量以及预设存储量阈值确定所述待编译的编程块对应的存储量等级值。
可选的,所述指定状态等级值包括所述编译频率等级值;该代码存储装置还包括(图2中未示出):
第五确定模块207,用于在所述根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储之前,根据所述待编译的编程块在指定历史时间段内被编译的次数以及预设编译次数阈值确定所述待编译的编程块对应的编译频率等级值。
可选的,所述指定状态等级值包括所述组合率等级值;该代码存储装置还包括(图2中未示出):
选取模块208,用于在所述根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储之前,从当前未编译完成的编程块中选取出至少一个第一编程块,得到所述第一编程块编译后的第一目标代码,以及从当前已存储的编译后的代码中选取出至少一个第二目标代码;
组合模块209,用于将所述待编译的编程块编译后的第三目标代码、所述第一目标代码以及所述第二目标代码,分别进行两两组合,得到两两组合后的运行结果;
第二获取模块210,用于获取所述第二目标代码与所述第一目标代码组合后的运行结果的第一成功率、所述第三目标代码与所述第一目标代码组合后的运行结果的第二成功率,以及所述第二目标代码与所述第三目标代码组合后的运行结果的第三成功率;
第六确定模块211,用于根据所述第二成功率与所述第一成功率的比值,以及所述第三成功率,确定所述待编译的编程块的组合率等级值。
可选的,所述指定状态等级值包括所述舆情匹配等级值;该代码存储装置还包括(图2中未示出):
第三获取模块212,用于在所述根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储之前,获取所述待编译的编程块编译后的代码的运行结果;
第一识别模块213,用于对所述运行结果进行识别,得到识别结果;
匹配模块214,用于将所述识别结果,与监控到的热门舆情进行同义词匹配,得到舆情匹配程度值;
第七确定模块215,用于根据所述舆情匹配程度值,以及预设的舆情匹配阈值确定所述待编译的编程块对应的舆情匹配等级值。
可选的,所述匹配模块214用于:
将所述识别结果,与监控到的热门舆情进行同义词匹配;
当任一所述识别结果与任一所述热门舆情为同义词时,进行同义词数量统计;
根据统计得到的同义词数量,得到所述舆情匹配程度值。
可选的,该代码存储装置还包括(图2中未示出):
第八确定模块216,用于在所述对所述待编译的编程块编译后的代码进行存储之后,当所述指定状态等级值包括所述舆情匹配等级值时,基于第一预设周期来重新确定所述待编译的编程块对应的指定状态等级值,并根据所述重新确定的指定状态等级值来重新确定是否继续对所述待编译的编程块编译后的代码进行存储;当所述指定状态等级值不包括所述舆情匹配等级值时,基于第二预设周期来重新确定所述待编译的编程块对应的指定状态等级值,并根据所述重新确定的指定状态等级值来重新确定是否继续对所述待编译的编程块编译后的代码进行存储;其中,所述第一预设周期小于所述第二预设周期。
在本发明实施例提供的技术方案中,可以确定待编译的编程块的历史编程次数,并在历史编程次数较多的情况下,根据该编程块对应的指定状态等级值来综合确定该编程块后续的编译概率以及编译价值,并对编译概率以及编译价值较高的编程块进行存储,以使得后续再对该编程块进行编译时,可以直接获取该编程块编译后的代码,从而可以有效减小编译时间以及编译压力,提升用户体验。
在本发明实施例中,可以分别从编译难度、存储量、编译频率、组合率以及舆情匹配等多个维度来确定编译后的代码的后续编译概率以及存储价值,并对后续编译概率较高以及存储价值较高的代码进行存储,使得有限的存储空间可以发挥出更大的价值,从而更好地满足用户的需求,提升用户体验。
对应上述代码存储方法,本发明实施例还提供了一种代码存储设备,图3为本发明一个实施例提供的代码存储设备的硬件结构示意图。
该代码存储设备可以为上述实施例提供的用于存储代码的终端设备或服务器等。
代码存储设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器301和存储器302,存储器302中可以存储有一个或一个以上存储应用程序或数据。其中,存储器302可以是短暂存储或持久存储。存储在存储器302的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对代码存储设备中的一系列计算机可执行指令。更进一步地,处理器301可以设置为与存储器302通信,在代码存储设备上执行存储器302中的一系列计算机可执行指令。代码存储设备还可以包括一个或一个以上电源303,一个或一个以上有线或无线网络接口304,一个或一个以上输入输出接口305,一个或一个以上键盘306。
具体在本实施例中,代码存储设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对代码存储设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行上述实施例。
在本发明实施例提供的技术方案中,可以确定待编译的编程块的历史编程次数,并在历史编程次数较多的情况下,根据该编程块对应的指定状态等级值来综合确定该编程块后续的编译概率以及编译价值,并对编译概率以及编译价值较高的编程块进行存储,以使得后续再对该编程块进行编译时,可以直接获取该编程块编译后的代码,从而可以有效减小编译时间以及编译压力,提升用户体验。
在本发明实施例中,可以分别从编译难度、存储量、编译频率、组合率以及舆情匹配等多个维度来确定编译后的代码的后续编译概率以及存储价值,并对后续编译概率较高以及存储价值较高的代码进行存储,使得有限的存储空间可以发挥出更大的价值,从而更好地满足用户的需求,提升用户体验。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用″逻辑编译器(1ogic compiler)″软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种代码存储方法,其特征在于,所述方法包括:
获取待编译的编程块的标识;
确定所述标识对应的编程块被历史编译的次数是否处于预设阈值区间;
当所述标识对应的编程块被历史编译的次数处于预设阈值区间时,根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储;其中,所述指定状态等级值至少包括以下之一:编译难度等级值、存储量等级值、编译频率等级值、组合率等级值以及舆情匹配等级值;
当确定对所述待编译的编程块编译后的代码进行存储时,对所述待编译的编程块编译后的代码进行存储。
2.根据权利要求1所述的方法,其特征在于,所述指定状态等级值包括所述编译难度等级值;
在所述根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储之前,所述方法还包括:
根据所述待编译的编程块被历史编译时的编译时长以及预设编译时长阈值确定所述待编译的编程块对应的编译难度等级值。
3.根据权利要求1所述的方法,其特征在于,所述指定状态等级值包括所述存储量等级值;
在所述根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储之前,所述方法还包括:
根据所述待编译的编程块被历史编译后得到的代码所占的存储量以及预设存储量阈值确定所述待编译的编程块对应的存储量等级值。
4.根据权利要求1所述的方法,其特征在于,所述指定状态等级值包括所述编译频率等级值;
在所述根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储之前,所述方法还包括:
根据所述待编译的编程块在指定历史时间段内被编译的次数以及预设编译次数阈值确定所述待编译的编程块对应的编译频率等级值。
5.根据权利要求1所述的方法,其特征在于,所述指定状态等级值包括所述组合率等级值;
在所述根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储之前,所述方法还包括:
从当前未编译完成的编程块中选取出至少一个第一编程块,得到所述第一编程块编译后的第一目标代码,以及从当前已存储的编译后的代码中选取出至少一个第二目标代码;
将所述待编译的编程块编译后的第三目标代码、所述第一目标代码以及所述第二目标代码,分别进行两两组合,得到两两组合后的运行结果;
获取所述第二目标代码与所述第一目标代码组合后的运行结果的第一成功率、所述第三目标代码与所述第一目标代码组合后的运行结果的第二成功率,以及所述第二目标代码与所述第三目标代码组合后的运行结果的第三成功率;
根据所述第二成功率与所述第一成功率的比值,以及所述第三成功率,确定所述待编译的编程块的组合率等级值。
6.根据权利要求1所述的方法,其特征在于,所述指定状态等级值包括所述舆情匹配等级值;
在所述根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储之前,所述方法还包括:
获取所述待编译的编程块编译后的代码的运行结果;
对所述运行结果进行识别,得到识别结果;
将所述识别结果,与监控到的热门舆情进行同义词匹配,得到舆情匹配程度值;
根据所述舆情匹配程度值,以及预设的舆情匹配阈值确定所述待编译的编程块对应的舆情匹配等级值。
7.根据权利要求6所述的方法,其特征在于,所述将所述识别结果,与监控到的热门舆情进行同义词匹配,得到舆情匹配程度值,包括:
将所述识别结果,与监控到的热门舆情进行同义词匹配;
当任一所述识别结果与任一所述热门舆情为同义词时,进行同义词数量统计;
根据统计得到的同义词数量,得到所述舆情匹配程度值。
8.根据权利要求1至7任一所述的方法,其特征在于,在所述对所述待编译的编程块编译后的代码进行存储之后,所述方法还包括:
当所述指定状态等级值包括所述舆情匹配等级值时,基于第一预设周期来重新确定所述待编译的编程块对应的指定状态等级值,并根据所述重新确定的指定状态等级值来重新确定是否继续对所述待编译的编程块编译后的代码进行存储;
当所述指定状态等级值不包括所述舆情匹配等级值时,基于第二预设周期来重新确定所述待编译的编程块对应的指定状态等级值,并根据所述重新确定的指定状态等级值来重新确定是否继续对所述待编译的编程块编译后的代码进行存储;其中,所述第一预设周期小于所述第二预设周期。
9.一种代码存储装置,其特征在于,所述装置包括:
第一获取模块,用于获取待编译的编程块的标识;
第一确定模块,用于确定所述标识对应的编程块被历史编译的次数是否处于预设阈值区间;
第二确定模块,用于当所述标识对应的编程块被历史编译的次数处于预设阈值区间时,根据所述待编译的编程块对应的指定状态等级值确定是否对所述待编译的编程块编译后的代码进行存储;其中,所述指定状态等级值至少包括以下之一:编译难度等级值、存储量等级值、编译频率等级值、组合率等级值以及舆情匹配等级值;
存储模块,用于当确定对所述待编译的编程块编译后的代码进行存储时,对所述待编译的编程块编译后的代码进行存储。
10.一种代码存储设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110733376.3A CN115543327A (zh) | 2021-06-30 | 2021-06-30 | 代码存储方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110733376.3A CN115543327A (zh) | 2021-06-30 | 2021-06-30 | 代码存储方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543327A true CN115543327A (zh) | 2022-12-30 |
Family
ID=84716952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110733376.3A Pending CN115543327A (zh) | 2021-06-30 | 2021-06-30 | 代码存储方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543327A (zh) |
-
2021
- 2021-06-30 CN CN202110733376.3A patent/CN115543327A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108537568B (zh) | 一种信息推荐方法和装置 | |
CN108268617B (zh) | 用户意图确定方法及装置 | |
CN115935428A (zh) | 信息脱敏方法、装置及系统 | |
CN110635962B (zh) | 用于分布式系统的异常分析方法及装置 | |
US11074246B2 (en) | Cluster-based random walk processing | |
CN112672184A (zh) | 一种视频审核及发布方法 | |
CN108427737B (zh) | 一种数据清理方法、设备及计算机可读介质 | |
CN107451204B (zh) | 一种数据查询方法、装置及设备 | |
CN112200132A (zh) | 一种基于隐私保护的数据处理方法、装置及设备 | |
CN115981870A (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN110245978B (zh) | 策略组中的策略评估、策略选择方法及装置 | |
CN109656946B (zh) | 一种多表关联查询方法、装置及设备 | |
CN108540531B (zh) | 一种信息推送的方法、信息获取的方法、装置及设备 | |
CN110688460B (zh) | 风险识别的方法、装置、可读存储介质以及电子设备 | |
CN110008398B (zh) | 一种数据分类管理推荐方法及装置 | |
CN115904907A (zh) | 任务处理方法及装置 | |
CN110019975B (zh) | 随机游走、基于集群的随机游走方法、装置以及设备 | |
CN115543327A (zh) | 代码存储方法、装置及设备 | |
CN111209277A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN108595395B (zh) | 一种昵称的生成方法、装置及设备 | |
CN114710318B (zh) | 一种限制爬虫高频访问的方法、装置、设备及介质 | |
CN107562533B (zh) | 一种数据加载处理方法及装置 | |
CN107368281B (zh) | 一种数据处理方法及装置 | |
CN110096477B (zh) | 一种数据存储的方法及装置 | |
CN115204395A (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 |