对在托管运行时环境中的页面共享进行优化的可重放执行制造技术

技术编号:23940981 阅读:52 留言:0更新日期:2020-04-25 05:04
本发明专利技术实施例允许在关闭应用和后续应用之间共享非地址无关代码,而不将非地址无关代码转换为地址无关代码。特别地,实施例技术在关闭应用运行时期间存储所述关闭应用的实时数据,然后将对所述关闭应用和后续应用通用的所述实时数据的一部分重新分页到相同虚拟存储器地址处的易失性存储器,其中在所述关闭应用运行时期间存储实时数据的所述一部分,使得可以重新使用所述分页的实时数据在所述托管的运行环境中执行所述后续应用。由于所述分页的实时数据在两个应用的运行时期间存储在相同虚拟存储器地址中,因此可以在所述应用之间共享非地址无关代码。

Replay execution optimized for page sharing in a managed runtime environment

【技术实现步骤摘要】
【国外来华专利技术】对在托管运行时环境中的页面共享进行优化的可重放执行相关申请案交叉申请本申请要求于2017年9月20日递交的专利技术名称为“对在托管运行时环境中的页面共享进行优化的可重放执行”的第15/710,678号美国专利申请案以及于2018年2月6日递交的专利技术名称为“优化可重放执行实现在托管运行时环境中共享页面”的第15/890,256号美国专利申请案的在先申请优先权,这两份专利申请案的全部内容以引入的方式并入本文。
本专利技术大体涉及云计算,并且在特定实施例中,还涉及用于对在托管运行时环境中的共享页面进行优化的可重放执行的系统和方法。
技术介绍
软件应用(以下简称“应用”)通常包含能够编译成机器代码(如二进制机器代码)并由操作系统执行的源代码(例如,人类可读的编程指令集)。所述源代码可以是托管或非托管源代码,具体取决于使用哪种编程语言创建所述应用。非托管源代码在运行时之前直接编译成计算机代码,并存储在文件中,供所述操作系统随后执行。由于非托管源代码在运行时之前编译成计算机代码,因此它通常必须包括在所述应用执行期间用于管理所述操作系统的本文档来自技高网...

【技术保护点】
1.一种方法,其特征在于,包括:/n在操作系统上的托管运行时环境中运行第一应用时,生成与所述第一应用对应的实时数据;/n将与所述第一应用对应的所述实时数据存储在非易失性存储器中,所述第一应用在将所述实时数据存储在所述非易失性存储器中后并在第二应用运行时之前关闭;/n将所述实时数据的第一部分从所述非易失性存储器中分页到易失性存储器中,所述实时数据的第一部分通用于所述第一应用的当前工作数据集和所述第二应用的当前工作数据集;/n使用所述实时数据的第一部分作为所述托管运行时环境中所述第二应用的当前工作数据集来执行所述第二应用。/n

【技术特征摘要】
【国外来华专利技术】20170920 US 15/710,678;20180206 US 15/890,2561.一种方法,其特征在于,包括:
在操作系统上的托管运行时环境中运行第一应用时,生成与所述第一应用对应的实时数据;
将与所述第一应用对应的所述实时数据存储在非易失性存储器中,所述第一应用在将所述实时数据存储在所述非易失性存储器中后并在第二应用运行时之前关闭;
将所述实时数据的第一部分从所述非易失性存储器中分页到易失性存储器中,所述实时数据的第一部分通用于所述第一应用的当前工作数据集和所述第二应用的当前工作数据集;
使用所述实时数据的第一部分作为所述托管运行时环境中所述第二应用的当前工作数据集来执行所述第二应用。


2.根据权利要求1所述的方法,其特征在于,分页所述实时数据的第一部分包括分页在第一虚拟存储器地址处的所述实时数据的第一部分,所述第一虚拟存储器地址为在所述第一应用的运行时期间存储了所述实时数据的第一部分的虚拟存储器地址。


3.根据权利要求2所述的方法,其特征在于,分页到所述易失性存储器中的所述实时数据的第一部分包括对所述第一应用和所述第二应用通用的本地指令。


4.根据权利要求3所述的方法,其特征在于,所述本地指令是由即时编译器在所述托管运行时环境中生成的即时编译(JIT编译)代码。


5.根据权利要求3所述的方法,其特征在于,所述本地指令中的至少一些指令是地址无关代码,所述地址无关代码无需被映射到特定虚拟存储器地址。


6.根据权利要求3所述的方法,其特征在于,所述本地指令中的至少一些指令是非地址无关代码,所述非地址无关代码需要被映射到特定虚拟存储器地址。


7.根据权利要求3所述的方法,其特征在于,所述使用所述实时数据的第一部分作为所述托管运行时环境中所述第二应用的当前工作数据集来执行所述第二应用包括:
重新使用已分页的所述本地指令执行所述第二应用。


8.根据权利要求3所述的方法,其特征在于,将所述第一应用的少于所有本地指令从所述非易失性存储器分页到所述易失性存储器。


9.根据权利要求1至8中任一项所述的方法,其特征在于,生成所述实时数据包括:
使用模拟的用户输入运行所述第一应用,以训练所述托管运行时环境,从而生成所述实时数据。


10.根据权利要求1至9中任一项所述的方法,其特征在于,所述使用所述实时数据的第一部分作为所述托管运行时环境中所述第二应用的当前工作数据集来执行所述第二应用包括:
根据与所述第一应用对应的至少所述实时数据的第一部分恢复所述第二应用。


11.根据权利要求10所述的方法,其特征在于,用于恢复所述第二应用的至少一些环境变量与用于运行所述第一应用的至少一些环境变量不同,使得所述第二应用的行为与所述第一应用不同。


12.根据权利要求1至11中任一项所述的方法,其特征在于,分页到所述易失性存储器中的所述实时数据的第一部分包括与所述第一应用相关联的即时编译的机器指令。


13.根据权利要求12所述的方法,其特征在于,使用所述实时数据的第一部分作为所述托管运行时环境中所述第二应用的当前工作数据集来执行所述第二应用包括:
重新使用所述分页即时编译的机器指令来执行所述第二应用。


14.根据权利要求1至13中任一项所述的方法,其特征在于,将所述实时数据的第一部分从所述非易失性存储器分页到易失性存储器包括:
以按需方式将所述实时数据的第一部分和所述实时数据的第二部分从所述非易失性存储器分页到易失性存储器,使得在所述实时数据的第二部分之前将所述实时数据的第一部分分页到所述易失性存储器,在所述第二应用运行时期间所述实时数据的第一部分在所述实时数据的第二部分之前被使用。


15.根据权利要求14所述的方法,其特征在于,对所述实时数据的第一部分进行分页包括在第一虚拟存储器地址中对所述实时数据的第一部分进行分页,所述第一虚拟存储器地址是在所述第一应用的运行时期间存储了所述实时数据的第一部分的虚拟存储器地址。


16.根据权利要求1至15中任一项所述的方法,其特征在于,分页到所述易失性存储器的所述实时数据的第一部分包括所述第一应用的类元数据。


17.根据权利要求16所述的方法,其特征在于,所述类元数据包括以下至少一种:类描述符、方法、常量池、任务表或用于描述在程序执行期间位于存储器中由JVM维护的的类的任何数据结构。


18.根据权利要求16所述的方法,其特征在于,使用所述实时数据的第一部分作为所述托管运行时环境中所述第二应用的当前工作数据集来执行所述第二应用包括:
重新使用已分页的所述第一应用的所述类元数据来执行所述第二应用。


19.根据权利要求18所述的方法,其特征在于,将所述第一应用的所述类元数据中的少于所有类元数据从所述非易失性存储器分页到所述易失性存储器。


20.根据权利要求1所述的方法,其特征在于,被分页到所述易失性存储器中的所述实时数据的第一部分包括与所述...

【专利技术属性】
技术研发人员:王愷婷胡万卜吴芃王海川
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1