System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 代码执行方法、装置、电子设备及存储介质制造方法及图纸_技高网

代码执行方法、装置、电子设备及存储介质制造方法及图纸

技术编号:40421203 阅读:5 留言:0更新日期:2024-02-20 22:40
本申请实施例公开了一种代码执行方法、装置、电子设备及存储介质。所述方法包括:响应于方法调用指令,若确定目标方法被第一次调用且目标方法对应的机器码序列中包括有初始化代码段,加载目标方法的机器码入口地址,其中,初始化代码段被设置在机器码序列的尾部,初始化代码段中包括至少一个一次性的初始化代码;基于机器码入口地址跳转至初始化代码段的起始位置,开始执行初始化代码段的指令;当完成初始化代码段的指令的执行后,将机器码入口地址设置为机器码序列的起始地址,得到新的机器码入口地址;基于新的机器码入口地址跳转至机器码序列的起始位置,开始执行机器码序列中的功能代码段的指令。通过上述方法,降低了运行时的负载。

【技术实现步骤摘要】

本申请属于计算机,具体涉及一种代码执行方法、装置、电子设备及存储介质


技术介绍

1、java语言是一种面向对象的程序设计语言,在编程过程中java语言撰写的代码解释性强,从而使得java语言被广泛使用。java语言使用的过程中通常需要定义或声明类,类中可以包含方法。当调用类中的方法时,若该方法中存在多个初始化slowpath,则每次调用该方法时执行的检查指令将大幅降低代码的执行效率。


技术实现思路

1、鉴于上述问题,本申请提出了一种代码执行方法、装置、电子设备以及存储介质,以实现改善上述问题。

2、第一方面,本申请实施例提供了一种代码执行方法,所述方法包括:响应于方法调用指令,若确定目标方法被第一次调用且所述目标方法对应的机器码序列中包括有初始化代码段,加载所述目标方法的机器码入口地址,其中,所述初始化代码段被设置在所述机器码序列的尾部,所述初始化代码段中包括至少一个一次性的初始化代码;基于所述机器码入口地址跳转至所述初始化代码段的起始位置,开始执行所述初始化代码段的指令;当完成所述初始化代码段的指令的执行后,将所述机器码入口地址设置为所述机器码序列的起始地址,得到新的机器码入口地址;基于所述新的机器码入口地址跳转至所述机器码序列的起始位置,开始执行所述机器码序列中的功能代码段的指令。

3、第二方面,本申请实施例提供了一种代码执行装置,所述装置包括:加载单元,用于响应于方法调用指令,若确定目标方法被第一次调用且所述目标方法对应的机器码序列中包括有初始化代码段,加载所述目标方法的机器码入口地址,其中,所述初始化代码段被设置在所述机器码序列的尾部,所述初始化代码段中包括至少一个一次性的初始化代码;第一执行单元,用于基于所述机器码入口地址跳转至所述初始化代码段的起始位置,开始执行所述初始化代码段的指令;设置单元,用于当完成所述初始化代码段的指令的执行后,将所述机器码入口地址设置为所述机器码序列的起始地址,得到新的机器码入口地址;第二执行单元,用于基于所述新的机器码入口地址跳转至所述机器码序列的起始位置,开始执行所述机器码序列中的功能代码段的指令。

4、第三方面,本申请实施例提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。

5、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。

6、本申请实施例提供了一种代码执行方法、装置、电子设备及存储介质。首先响应于方法调用指令,若确定目标方法被第一次调用且目标方法对应的机器码序列中包括有初始化代码段,加载目标方法的机器码入口地址,其中,所述初始化代码段被设置在所述机器码序列的尾部,所述初始化代码段中包括至少一个一次性的初始化代码,然后基于该机器码入口地址跳转至初始化代码段的起始位置,开始执行初始化代码段的指令,当完成初始化代码段的指令的执行后,将机器码入口地址设置为机器码序列的起始地址,得到新的机器码入口地址,最后基于该新的机器码入口地址跳转至机器码序列的起始位置,开始执行机器码序列中的功能代码的指令。通过上述方法,将目标方法对应的所有一次性初始化代码整理成初始化代码段,并在目标方法第一次被调用后动态修改机器码入口地址,从而可以让一次性初始化代码在目标方法被多次调用时不再重复执行,提高了代码的执行效率,降低了运行时的负载。

本文档来自技高网...

【技术保护点】

1.一种代码执行方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述加载所述目标方法的机器码入口地址,包括:

3.根据权利要求1所述的方法,其特征在于,所述响应于方法调用指令,若确定目标方法被第一次调用且所述目标方法中包括有初始化代码段,加载所述目标方法的机器码入口地址之前还包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求3所述的方法,其特征在于,所述在类方法的加载过程中,创建所述目标方法对应的方法对象,并设置所述目标方法的机器码入口地址之前还包括:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

7.根据权利要求3所述的方法,其特征在于,所述在设置所述目标方法的机器码入口地址时,若确定所述目标方法对应的机器码序列中包括有初始化代码段,将所述初始化代码段的起始地址作为所述机器码入口地址,包括:

8.一种代码执行装置,其特征在于,所述装置包括:

9.一种电子设备,其特征在于,包括一个或多个处理器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行权利要求1-7任一所述的方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行权利要求1-7任一所述的方法。

...

【技术特征摘要】

1.一种代码执行方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述加载所述目标方法的机器码入口地址,包括:

3.根据权利要求1所述的方法,其特征在于,所述响应于方法调用指令,若确定目标方法被第一次调用且所述目标方法中包括有初始化代码段,加载所述目标方法的机器码入口地址之前还包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求3所述的方法,其特征在于,所述在类方法的加载过程中,创建所述目标方法对应的方法对象,并设置所述目标方法的机器码入口地址之前还包括:

6.根据权利要求5所述的方法,其特征在于,...

【专利技术属性】
技术研发人员:曾开发马江
申请(专利权)人:OPPO广东移动通信有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1