Java虚拟机精讲【1.3】

张开发
2026/5/29 6:44:26 15 分钟阅读
Java虚拟机精讲【1.3】
1.5.2 基于OpenJDK深度定制的淘宝JVM( TaobaoVM)使用 Java 技术编写的系统,无疑在生产环境中需要对 Java 虚拟机进行正常的调优工作,既然谈到 Java 虚拟机的调优技术,笔者相信大部分的开发人员至今仍然仅停留在参数调制上。由于淘宝目前无疑是中国最大的 Java 技术应用方,那么淘宝究竟是采用什么样的技术对 Java 虚拟机进行优化的呢?淘宝的技术团队对 Java 虚拟机的优化工作其实早已不是停留在简单的参数调制上面,而是充分结合了企业自身的业务特点以及实际的应用场景,在OpenJDK 的基础之上通过修改大量的 HotSpot 源代码,深度定制了淘宝专属的高性能 Java虚拟机——TaobaoVM。既然是结合业务特点深度定制的一款 Java 虚拟机,那么性能必然在某一些特定的应用场景上会比 Oracle 官方的 HotSpot 更强,如图 1-8 所示。但其弊端同样也非常明显,那就是无法实现通用。所以如果只是想对 TaobaoVM 进行研究的话,可以参考 jvm.taobao.org 中的描述编译一个 TaobaoVM,但如果需要应用在实际的项目中,笔者还是建议三思而后行,否则将会得不偿失。淘宝的技术团队通过修改大量的HotSpot源代码深度定制的TaobaoVM ⑦,其实从严格意义上来说,在提升Java虚拟机性能的同时,却严重依赖物理CPU类型。也就是说,部署有TaobaoVM的服务器中, CPU全都是清一色的Intel CPU,且编译手段采用的是Intel C/CPPCompiler进行编译, 以此对GC性能进行提升。 除了优化编译效果外, TaobaoVM还使用了crc32指令实现JVM intrinsic降低JNI的调用开销,如图 1-9 所示。除了在性能优化方面下足了功夫, TaobaoVM 还在 HotSpot 的基础之上大幅度扩充了一些特定的增强实现。比如创新的 GCIH( GC invisible heap)技术实现 off-heap,这样一来就可以将生命周期较长的 Java 对象从 heap 中移至 heap 之外, 并且 GC 不能管理 GCIH 内部的Java 对象,这样做最大的好处就是降低了 GC 的回收平率以及提升了 GC 的回收效率,并且GCIH 中的对象还能够在多个 Java 虚拟机进程中实现共享。其他扩充技术还有利用 PMU hardware 的 Java profiling tool 和诊断协助功能等。1.5.3 下载OpenJDK源代码大家可以登录 http://openjdk.java.net/下载 OpenJDK 的源代码,本书编译实战所演示的JDK 版本为 openjdk7-u40。当然你也可以选择下载其他版本的 OpenJDK,但是为了避免在编译过程中发生一些不必要的错误,所以建议大家尽量保持和本书一致的 JDK 版本。想要下载 Open

更多文章