[发明专利]程序运行及虚拟机实例的实现方法、装置、设备及介质有效
| 申请号: | 201810049908.X | 申请日: | 2018-01-18 |
| 公开(公告)号: | CN110058859B | 公开(公告)日: | 2023-09-08 |
| 发明(设计)人: | 李勇彪;金一华;徐伟刚;李庆岩;孙哲;龚凯;杨辉;陈凌云;王帆;汪林 | 申请(专利权)人: | 斑马智行网络(香港)有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/54;G06F9/455 |
| 代理公司: | 上海华诚知识产权代理有限公司 31300 | 代理人: | 徐颖聪 |
| 地址: | 中国香港九龙长沙湾道*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 程序 运行 虚拟机 实例 实现 方法 装置 设备 介质 | ||
1.一种程序运行方法,其特征在于,包括:
维护第一运行时,所述第一运行时包括能够被至少两个线程调用的第一对象,所述第一对象仅能够引用所述第一运行时中的其它对象;所述第一运行时还包括第一方法缓存池,用于缓存编译好的能够被至少两个线程调用的共享方法信息;以及
响应于线程被创建,维护对应于所述线程的第二运行时,所述第二运行时包括仅能够被所述线程调用的第二对象,所述第二对象能够引用所述第一对象以及与所述第二对象属于同一第二运行时中的其它对象;所述第二运行时还包括第二方法缓存池,用于缓存编译好的仅能够被所述线程调用的私有方法信息。
2.根据权利要求1所述的程序运行方法,其特征在于,
所述第一对象为生命周期中不可变和/或不易改变的对象。
3.根据权利要求2所述的程序运行方法,其特征在于,
所述第一对象包括基本类型对象和/或虚拟机内部对象。
4.根据权利要求3所述的程序运行方法,其特征在于,
所述虚拟机内部对象包括与代码相关的虚拟机内部对象和/或用户不可见的虚拟机内部的数据对象。
5.根据权利要求2所述的程序运行方法,其特征在于,所述第一对象包括以下一项或多项:
字符串对象;
数值对象;
脚本对象;
共享方法信息;
共享方法信息缓存池;
代码对象;
不可变对象的布局描述。
6.根据权利要求1所述的程序运行方法,其特征在于,还包括:
针对一个对象,将所述对象中能够被至少两个线程调用的部分作为所述第一对象,并且/或者,将所述对象中仅与单个线程相关的部分作为所述第二对象。
7.根据权利要求1所述的程序运行方法,其特征在于,
所述第一运行时还包括解析器、编译器以及解释执行引擎,并且/或者,
所述第二运行时还包括编译器。
8.根据权利要求1所述的程序运行方法,其特征在于,还包括:
在要执行的方法属于所述第一对象的情况下,通过在所述第一方法缓存池中查找,来确定所述方法是否被编译;
在所述方法被编译过的情况下,从所述第一方法缓存池中获取与所述方法对应的编译后的代码,并运行所获取的代码。
9.根据权利要求8所述的程序运行方法,其特征在于,还包括:
在所述方法未被编译过的情况下,对所述方法进行编译,并将编译结果放入所述第一方法缓存池。
10.根据权利要求1所述的程序运行方法,其特征在于,还包括:
在要执行的方法属于所述第二对象的情况下,通过在所述第二方法缓存池中查找,来确定所述方法是否被编译;
在所述方法被编译过的情况下,从所述第二方法缓存池中获取与所述方法对应的编译后的代码,并运行所获取的代码。
11.根据权利要求10所述的程序运行方法,其特征在于,还包括:
在所述方法未被编译过的情况下,对所述方法进行编译,并将编译结果放入所述第二方法缓存池。
12.根据权利要求1所述的程序运行方法,其特征在于,
所述第一运行时还包括第一内存堆,用于存储所述第一对象,并且/或者
所述第二运行时还包括第二内存堆,用于存储所述第二对象。
13.根据权利要求12所述的程序运行方法,其特征在于,
所述第一运行时还包括第一对象缓存池,用于缓存一个或多个已分配内存的第一对象,并且/或者
所述第二运行时还包括第二对象缓存池,用于缓存一个或多个已分配内存的第二对象。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于斑马智行网络(香港)有限公司,未经斑马智行网络(香港)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810049908.X/1.html,转载请声明来源钻瓜专利网。





