Jikes 研究虚拟机(RVM)四 当前状态

简介: 当前状态 实现所有的 Java 语言功能所要求的核心功能就是全部工作,但有待于完成。一些更深奥的线程功能 ― 暂挂、恢复、时间等待等等 ― 还有待于实现。负载平衡算法还处在在初步阶段。还未提供对最终化、弱引用和类验证的支持。

当前状态

实现所有的 Java 语言功能所要求的核心功能就是全部工作,但有待于完成。一些更深奥的线程功能 ― 暂挂、恢复、时间等待等等 ― 还有待于实现。负载平衡算法还处在在初步阶段。还未提供对最终化、弱引用和类验证的支持。快速编译器接近完成。优化编译器的基础框架和它的一些级别 1 的优化已经完成并运行。更高级的优化正在开发之中。联机测量和控制器子系统处在设计阶段。

Jalape�o 对 Java 库代码的支持受到 Jalape�o 写成 Java 代码的限制。Jalape�o 能够处理写成 Java 代码的库方法,但本机方法必须重写。实现 Java 本机接口(Java Native Interface(JNI))将允许 Jalape�o 调用写给这种接口的本机方法,但不能调用某些本机方法。JNI 是一个特别难解决的问题,因为它是虚拟机的 C 语言接口,而在 Jalape�o 中,虚拟机不是用 C 编写的。我们还不知道当我们试图在 Jalape�o 中提供 JNI 服务时会出现什么性能或实现问题。

Jalape�o 项目正处在过渡阶段。初始功能大多已经实现。Jalape�o 的很多机制仍处于初步阶段。现在是测量性能、识别瓶颈并用更高效的实现取代它的时候了。一些“低挂的果实”已被采摘:例如,无争用的锁获取已经被改成内联。然而,基线编译代码的性能量度是如此没有说服力以致于我们只好勉强信任我们的量度,直到优化编译器可用。

在功能和性能上也还有错误有待于隔离、识别和修复。

要想评估 Jalape�o 的当前性能,将它与 AIX 下的 IBM Developer Kit(DK)中的 JVM 作个比较是有帮助的,该 JVM 是东京 IBM 开发的使用 JIT 编译器的 Java 技术版,版本 1.1.8。 31 应该注意到,Jalape�o 的目标奢侈地针对 SMP 服务器,而 IBM JVM 必须适应于所有运行 AIX 的 PowerPC 计算机。读者的脑海中也应记住这里提出的性能图代表的是某个时间点上的快照:Jalape�o 和 IBM JVM 都不时得到改善。

性能图针对 Jalape�o 的基线和优化编译器。对两种情况,引导映象都用优化编译器编译过,而指定编译器主要用于指定的应用程序(和 JVM 的任何动态链接类)。优化编译器图反映当前实现了的级别 1 优化。非繁衍拷贝内存管理器在两种情况中都使用。

图 7 比较了 Jalape�o 的基线和优化编译器(用 Java 语言编写并由 Jalape�o 的优化编译器优化)以及 IBM DK JIT 编译器(用本机代码实现)花费的编译时间。基线编译器是明显的胜出者,其运行比 JIT 编译器快 30 到 45 倍。优化编译器差不多与 JIT 编译器一样快,但没它快。

图 8 把三个编译器生成的代码的性能和 Symantec 的微基准程序(microbenchmark)上的不使用 JIT 编译器的 IBM DK 的解释代码的性能作了一个比较。 32 (该图已被删改以简化 Jalape�o 的优化编译器和 IBM DK JIT 编译器间的性能比较。)基线编译后的代码始终是解释后的代码的两倍快。IBM JIT 编译后的代码快得多:比解释后的代码快 4 到 40 倍。Jalape�o 的优化编译器与 JIT 编译器大致相当。

图 9 在运行在中等大小的(10%)问题上的 SPECjvm98 基准程序 33 上做了相同的比较。 34 基线编译器再一次通常是解释器的两倍好。JIT 编译器再一次快得多。优化编译器再一次通常与 JIT 相当。

图 10 显示了在使用可移植业务对象基准程序(portable business object benchmark,pBOB 版本 2.0a)的 12 路 SMP(带运行 AIX 4.3 的 262 MHz PowerPC S7a 处理器)上的 12 个虚拟处理器上运行的 Jalape�o 优化编译器的性能。这个模型按照 TPC-C 规范建立的基准程序(请参阅 Baylor 等人 35 对这个问题的讨论以了解细节),模拟了事务工作负载中的业务逻辑。一直到 10 个仓库(warehouse),性能几乎是线性地提高,在 13 个仓库时达到峰值,然后缓慢地降低。这表明,到少在这个基准程序上,Jalape�o 伸缩得很好。

 
目录
相关文章
虚拟机的网卡没了,研究了一下,自己的网络也没了。
虚拟机的网卡没了,研究了一下,自己的网络也没了。
178 0
|
算法 Java Linux
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【下部】
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【下部】
205 0
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【下部】
|
算法 Java 编译器
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【上部】
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【上部】
177 0
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【上部】
|
存储 缓存 监控
「作者推荐!」JVM研究系列-虚拟机分析与调优技巧分析(回顾篇)
「作者推荐!」JVM研究系列-虚拟机分析与调优技巧分析(回顾篇)
221 0
「作者推荐!」JVM研究系列-虚拟机分析与调优技巧分析(回顾篇)
|
Java Unix 测试技术
Jikes 研究虚拟机(RVM)一 设计和实现问题
Jikes 研究虚拟机(RVM) Thomas J. Watson 研究中心的 Jalapeno 研究项目的一个独立开发的部分 B. Alpern, , IBM C. R. Attanasio, , IBM J.
1122 0
|
存储 安全 Java
Jikes 研究虚拟机(RVM)二 JVM 的组织
JVM 的组织 下面的几部分描述 Jalape�o 的对象模型(object model)、运行时子系统(run-time subsystem)、线程和同步子系统(thread and synchronization subsystem)、内存管理子系统(memory management subsystem)和编译器子系统(compiler subsystem)。
1156 0
|
存储 算法 Java
Jikes 研究虚拟机(RVM)三 动态优化编译器
动态优化编译器 我们希望 Java 应用程序的计算部分只涉及 Java 源代码的一小部分。Jalape�o 的优化编译器致力于高效地编译这些字节码。优化编译器是 动态的:它在应用程序运行时编译方法。
1064 0
|
23天前
|
Ubuntu 网络安全 虚拟化
VMware虚拟机ping不通原因排查及分析
下面以 VMware 虚拟机为例进行介绍。
253 3
|
1月前
|
存储 SQL 数据库
虚拟化数据恢复—Vmware虚拟机误还原快照的数据恢复案例
虚拟化数据恢复环境: 一台虚拟机从物理机迁移到ESXI虚拟化平台,迁移完成后做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了数年的数据。 ESXI虚拟化平台上有数十台虚拟机,EXSI虚拟化平台连接了一台EVA存储,所有的虚拟机都存放在EVA存储上。 虚拟化故障: 工组人员误操作将数年前迁移完成后做的快照还原了,也就意味着虚拟机状态还原到数年前,近几年数据都被删除了。 还原快照相当于删除数据,意味着部分存储空间会被释放。为了不让这部分释放的空间被重用,需要将连接到这台存储的所有虚拟机都关掉,需要将不能长时间宕机的虚拟机迁移到别的EXSI虚拟化平台上。
102 50
|
2月前
|
安全 虚拟化 数据中心
Xshell 连接 VMware虚拟机操作 截图和使用
Xshell 连接 VMware虚拟机操作 截图和使用
61 4