CN117472438A - 一种基于提前编译的解释器指令优化方法和装置 - Google Patents
一种基于提前编译的解释器指令优化方法和装置 Download PDFInfo
- Publication number
- CN117472438A CN117472438A CN202310862936.4A CN202310862936A CN117472438A CN 117472438 A CN117472438 A CN 117472438A CN 202310862936 A CN202310862936 A CN 202310862936A CN 117472438 A CN117472438 A CN 117472438A
- Authority
- CN
- China
- Prior art keywords
- instruction
- virtual machine
- instructions
- compiling
- interpreter
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000005457 optimization Methods 0.000 title claims abstract description 22
- 238000011161 development Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 11
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 11
- 230000003068 static effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请提供了一种基于提前编译的解释器指令优化方法、装置、计算设备和计算机可读存储介质,在该方法中,为了提高混合热更新方案中解释器的执行效率,在编译获得热更新程序集的虚拟机指令后,发送给客户端进行热更新前,对该虚拟机指令进行进一步的优化,将其转换为更为高效的寄存器指令,使得运行时效率大幅提升;通过该方式还使得一些耗时、耗内存且无法在运行时执行的优化在该预编译阶段得以完成,从而极大的加快了解释器的执行速度。
Description
技术领域
本申请涉及计算机编译技术领域,特别涉及一种基于提前编译的解释器指令优化方法、装置、计算设备和计算机可读存储介质。
背景技术
在现有技术CN 202210078151.3中,提出了一种用于Unity平台的热更新方法和装置,在该专利中通过对IL2CPP工具进行自定义改造以及为IL2CPP工具增加自定义解释器,从而实现了一种新的热更新架构,将热更新程序集和主程序加载到同一运行时中,对于无需更新的代码使用静态编译并本地执行;对于热更新程序集中的代码,则通过解释器进行解释执行。但是在该情况下,由于使用解释器直接解释执行未经过优化的热更新代码,其执行效率较低,与原生程序有较大差距,尤其在执行重度数值计算时有较大的性能压力,因此如何提升解释器的执行效率是一个亟需解决的问题。
发明内容
有鉴于此,本申请例提供了一种基于提前编译的解释器指令优化方法、装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种基于提前编译的解释器指令优化方法,包括:
为运行时添加解释器;
获取热更新程序集,对所述热更新程序集编译得到虚拟机指令;
对上述虚拟机指令进行预编译,得到自定义解释指令;
将所述自定义解释指令发送给客户端,由所述客户端上运行时的解析器进行执行,完成热更新。
根据本申请实施例的第二方面,提供了一种基于提前编译的解释器指令优化装置,包括:
编译单元,用于获取热更新程序集,对所述热更新程序集编译得到虚拟机指令;
优化单元,用于对上述虚拟机指令进行预编译,得到自定义解释指令;
打包单元,用于将所述自定义解释指令发送给客户端,由所述客户端上运行时的解析器进行执行,完成热更新。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述基于提前编译的解释器指令优化方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述基于提前编译的解释器指令优化方法的步骤。
通过本申请实施例中的方法和装置,为了提高混合热更新方案中解释器的执行效率,在编译获得热更新程序集的虚拟机指令后,发送给客户端进行热更新前,对该虚拟机指令进行进一步的优化,将其转换为更为高效的寄存器指令,使得运行时效率大幅提升;通过该方式还使得一些耗时、耗内存且无法在运行时执行的优化在该预编译阶段得以完成;而且,由于预编译时可以获取整个工程中AOT部分的代码信息,从而能实现一些运行时优化不便执行的操作,进一步提升了解释器的执行效率。
附图说明
图1是本申请实施例提供的计算设备的结构框图;
图2是本申请实施例提供的一种基于提前编译的解释器指令优化方法的流程示意图;
图3是本申请实施例提供的一种基于提前编译的解释器指令优化装置的结构示意图;
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“响应于确定”。
在本申请中,提供了一种基于提前编译的解释器指令优化方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
在Unity开发平台中,IL2CPP是一种新的脚本后处理(Scripting Backend)方式,针对平台编译输出的IL(中间语言)进行处理,将IL语言转换为静态的C++代码,然后再由各个平台的C++编译器直接编译成能执行的原生汇编代码,从而实现Unity的跨平台开发。这种方式除了执行效率快以外,还可以利用各个平台的C++编译器对代码执行编译期优化,这样可以进一步减小最终游戏的尺寸并提高游戏运行速度,因此,几乎所有基于Unity的开发过程都使用了IL2CPP工具。
其中,IL2CPP主要由两部分组成:
·AOT(Ahead Of Time)静态编译编译器(il2cpp.exe);
·运行时库(libil2cpp);
AOT编译器将IL转换为C++代码,再交给各平台的C++编译器进行编译,由于使用的是AOT静态编译,因此在编译时就必须完全确定需要用到的类型;运行时库则会提供诸如垃圾回收、线程/文件获取、内部调用直接修改托管数据结构的原生代的服务与抽象。
现有技术CN 202210078151.3中,通过为IL2CPP工具添加IL解释器的方式使得IL2CPP工具具备了AOT编译器、运行时环境和IL解释器功能,具有了多个不同平台的编译和热更新基础。其中,对于无需更新的代码使用AOT静态编译成C++代码,进而被目标平台编译为本地可执行程序;对于热更新程序集中的代码,则通过解释器进行解释执行。在这种方式中,由于热更新代码没有经过编译优化,解释器原理上的缺陷会导致这部分代码的执行效率较低,从而影响了热更新后整个程序的执行效率。
因此,在本申请实施例中,为了解决上述问题,提出了一种基于提前编译的解释器指令优化方法和装置,使得解释器的执行效率大大提升。
说明书附图1中的处理器120可以执行图2所示的基于提前编译的解释器指令优化方法的流程图,包括步骤202至步骤206。
步骤202:为运行时添加解释器;
在该步骤中,为开发引擎提供的运行时环境或虚拟机添加解释器。
在一种可行的实施方式中,为Unity开发引擎的IL2CPP环境添加解释器,使得该工具具备了AOT编译器、运行时环境和解释器功能,具有了多个不同平台的编译和热更新基础。其中,对于无需更新的代码使用AOT静态编译成C++代码,基于目标平台编译为本地可执行程序在运行时环境中运行;对于热更新程序集中的代码,则通过解释器进行解释执行。
在本申请实施例中,从对开发引擎的运行时环境改造出发,将纯静态编译的运行时变成静态编译+解释器运行时,从根本上解决了热更新的问题。
步骤204:获取热更新程序集,编译并获取虚拟机指令;
在所属技术领域中,常见的跨平台编程语言如C#、java等,一般并不直接编译原生代码,而是直接编译为它们独特的平台无关的虚拟机指令后最终在运行环境通过VM(virutual machine)运行。例如C#源码实现的程序首先被编译为IL指令,当在指定设备运行该程序时,由该设备上的公共语言运行时CLR中的JIT(Just In Time)编译器将IL指令转换成本地平台的机器指令后执行。为了实现跨平台的功能,这些虚拟机指令,如IL指令,通常是基于栈的指令。
在本申请的该步骤中,当完成热更新程序集的开发后,在发送给客户端之前,对该热更新程序集进行编译,获取其虚拟机指令。例如,在使用C#开发的工程中,对热更新程序集进行编译,得到热更新程序集的IL指令,作为后续优化的对象。
步骤206:对上述虚拟机指令进行预编译,得到优化的自定义解释指令。
现有技术中,为了实现跨平台执行的功能,这些流行的虚拟机如JVM、CLR等都使用了栈指令集,这类指令集虽然精简,但存在过于频繁的栈操作等问题,且它们的编译器一般生成只有少量优化的寄存器指令,造成运行时效率较低。例如,基于堆栈的虚拟机使用堆栈来保存中间结果、变量等,而基于寄存器的虚拟机则支持寄存器的指令操作;基于堆栈的虚拟机需要用Push、Pop来传送数据,而完成同样的工作基于寄存器的虚拟机所采用的指令数比基于堆栈的虚拟机采用的指令数目少,可以提高执行效率。
因此,为了加强后续的指令执行效率,在本申请的一个实施方式中,对步骤204得到的基于栈的虚拟机指令进行预编译和优化,将其转换为寄存器指令。
例如,将语句a=b+c由栈指令转化为寄存器指令,其中,
栈指令为:ldloc.1,lodloc.2,add,stloc.3,包括4条指令。
转换为寄存器指令后为:
add<a><b><c>,包括1条指令。
在另一种可行的实施方式中,由于预编译时还能获得开发工程中非热更新部分代码或者叫主程序的代码信息,因此还能进一步实现在运行时(runtime)较难实现或不能实现的优化技术。
具体的,在一个可选的示例中,可以在预编译过程中实现inline AOT函数的优化。在先申请CN202211120469.X中,在解释器中实现了一种内联AOT编译函数的解释器指令优化执行方法,在该方案中由于是在解释器处进行指令的优化,当解释器在对目标指令进行解析执行时,需要判断当前指令中被调用的函数是否是AOT编译函数,因此解释器需要获取函数的原始字节码信息,这就导致了需要将包含函数原始字节码信息的程序集与经过AOT编译的主程序或与热更新程序包一起打包发布,其过程较为复杂,热更新的程序包也比较大。而在本申请的示例中,可以在开发工程中直接获取所有原始字节码信息,因此在预编译阶段就可以完成inline AOT函数的优化,生成优化后的寄存器指令,无需再将原始字节码信息发送给客户端。
步骤208:将上述寄存器指令打包发送给客户端。
在该步骤中,将对热更新程序集预编译后的寄存器指令发送给需要进行热更新的客户端,由客户端上的运行时或/虚拟机环境的解释器加载该寄存器指令,并将寄存器指令翻译为运行时指令后,进行最终的解释执行,完成热更新程序集功能的实现。相比对原始的虚拟机指令,如对IL指令进行解释执行,本申请的实施例中优化后的寄存器指令由于与运行时的寄存器指令集相近,加载效率更高,将其翻译为运行时指令的成本更低,也使得加载效率和运行效率得到了极大的提升。
在上述实施方式中,为了提高混合热更新方案中解释器的执行效率,在编译获得热更新程序集的虚拟机指令后,发送给客户端进行热更新前,对该虚拟机指令进行进一步的优化,将其转换为更为高效的寄存器指令,使得运行时效率大幅提升,相较原始的虚拟机指令,翻译为运行时指令的成本也更低,使得加载效率提升;通过该方式还使得一些耗时、耗内存且无法在运行时执行的优化在该预编译阶段得以完成;而且,由于预编译时可以获取整个工程中AOT部分的代码信息,从而能实现一些运行时优化不便执行的操作,进一步提升了解释器的执行效率。本申请实施例除了提高热更新方案中解释器的执行效率外,还带来了其他的效果,将原始虚拟机指令翻译为自定义指令后,天然具有较强的混淆效果,更好保护源码;该方式还将编译与运行分离,使得修复编译错误不需要重新发布App,当App上线后,发现有编译bug,只需要重新生成最新的寄存器指令,再更新即可。
与上述方法实施例相对应,本申请还提供了一种基于提前编译的解释器指令优化装置的实施例,图3示出了本申请一个实施例的一种基于提前编译的解释器指令优化装置的结构示意图,该装置包括:
编译单元,用于获取热更新程序集,对所述热更新程序集编译得到虚拟机指令;
优化单元,用于对上述虚拟机指令进行预编译,得到自定义解释指令;
打包单元,用于将所述自定义解释指令发送给客户端,由所述客户端上运行时的解析器进行执行,完成热更新。
上述为本实施例的一种基于提前编译的解释器指令优化装置的示意性方案。需要说明的是,该基于提前编译的解释器指令优化装置的技术方案与上述的基于提前编译的解释器指令优化方法的技术方案属于同一构思,该基于提前编译的解释器指令优化装置的技术方案未详细描述的细节内容,均可以参见上述基于提前编译的解释器指令优化方法的技术方案的描述。
本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的基于提前编译的解释器指令优化方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的基于提前编译的解释器指令优化方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述基于提前编译的解释器指令优化方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述基于提前编译的解释器指令优化方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的基于提前编译的解释器指令优化方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述基于提前编译的解释器指令优化方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种基于提前编译的解释器指令优化方法,其特征在于,包括:
为运行时添加解释器;
获取热更新程序集,对所述热更新程序集编译得到虚拟机指令;
对上述虚拟机指令进行预编译,得到优化的自定义解释指令;
将所述自定义解释指令发送给客户端,由所述客户端上运行时的解析器进行执行,完成热更新。
2.根据权利要求1所述的方法,其中,获取热更新程序集,对所述热更新程序集编译得到虚拟机指令包括但不限于:
将.net开发语言编译为IL指令或将java开发语言编译为字节码指令。
3.根据权利要求2所述的方法,其中,对上述虚拟机指令进行预编译,得到优化的自定义解释指令包括:
对虚拟机指令进行预编译和优化,将其转换为寄存器指令。
4.根据权利要求3所述的方法,其中,对虚拟机指令进行预编译和优化,将其转换为寄存器指令包括:
预编译和优化时获取非热更新部分代码后与所述热更新程序集进行合并优化。
5.根据权利要求1所述的方法,其中,由所述客户端上运行时的解析器进行执行,完成热更新包括:
客户端上运行时的解析器加载所述寄存器指令,将所述寄存器指令翻译为运行时指令后,进行最终的解释执行。
6.一种基于提前编译的解释器指令优化装置,其特征在于,包括:
编译单元,用于获取热更新程序集,对所述热更新程序集编译得到虚拟机指令;
优化单元,用于对上述虚拟机指令进行预编译,得到自定义解释指令;
打包单元,用于将所述自定义解释指令发送给客户端,由所述客户端上运行时的解析器进行执行,完成热更新。
7.根据权利要求6所述的装置,其中,所述优化单元包括:
对所述虚拟机指令进行预编译和优化,将其转换为寄存器指令。
8.根据权利要求7所述的装置,其中,所述对虚拟机指令进行预编译和优化,将其转换为寄存器指令包括:
预编译和优化时获取非热更新部分代码后与所述热更新程序集进行合并优化。
9.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-5任意一项所述方法的步骤。
10.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-5任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310862936.4A CN117472438A (zh) | 2023-07-13 | 2023-07-13 | 一种基于提前编译的解释器指令优化方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310862936.4A CN117472438A (zh) | 2023-07-13 | 2023-07-13 | 一种基于提前编译的解释器指令优化方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117472438A true CN117472438A (zh) | 2024-01-30 |
Family
ID=89635412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310862936.4A Pending CN117472438A (zh) | 2023-07-13 | 2023-07-13 | 一种基于提前编译的解释器指令优化方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472438A (zh) |
-
2023
- 2023-07-13 CN CN202310862936.4A patent/CN117472438A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111770113B (zh) | 一种执行智能合约的方法、区块链节点和节点设备 | |
EP0718760B1 (en) | Method and apparatus for generating platform-standard object files containing machine-independent code | |
US8555264B2 (en) | System and method for efficient compilation and invocation of function type calls | |
US11720344B2 (en) | Code hot-update method and device, storage medium, processor, and terminal | |
CN111770204B (zh) | 一种执行智能合约的方法、区块链节点和存储介质 | |
EP3961973A1 (en) | Methods, blockchain nodes, and storage media for deploying smart contract | |
US20060248262A1 (en) | Method and corresponding apparatus for compiling high-level languages into specific processor architectures | |
US9134973B2 (en) | Dynamic compiling and loading at runtime | |
US20150186165A1 (en) | Emulating pointers | |
CN111770116B (zh) | 一种执行智能合约的方法、区块链节点、存储介质 | |
CN111815310B (zh) | 一种执行智能合约的方法、区块链节点和存储介质 | |
CN111770205B (zh) | 一种执行智能合约的方法、区块链节点、系统和存储介质 | |
CN114816417B (zh) | 一种交叉编译方法、装置、计算设备及存储介质 | |
CN114115964B (zh) | 一种用于Unity的热更新方法、装置、计算设备及计算机可读存储介质 | |
CN111770202B (zh) | 一种执行智能合约的方法、区块链节点和存储介质 | |
US11188361B1 (en) | Cross-architecture software distribution using a virtual instruction set architecture | |
Franz | Adaptive compression of syntax trees and iterative dynamic code optimization: Two basic technologies for mobile object systems | |
WO2022237590A1 (zh) | 智能合约升级方法及区块链系统 | |
CN114443052B (zh) | 一种il指令运行时的动态特例化方法和装置 | |
CN115048184A (zh) | 一种解释器指令的优化执行方法和装置 | |
CN113220327B (zh) | 智能合约升级方法及区块链系统 | |
CN117472438A (zh) | 一种基于提前编译的解释器指令优化方法和装置 | |
CN114594981B (zh) | 一种用于在热更新时解决泛型兼容性问题的方法和装置 | |
CN114461343A (zh) | 一种il指令的静态优化方法和装置 | |
CN117270990A (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 |