链接:https://www.zhihu.com/question/275665265/answer/416021488
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
下面是网络上针对TaobaoVM的一段介绍:
由于淘宝目前无疑是中国最大的Java技术应用方,那么淘宝究竟是采用什么样的技术对Java虚拟机进行优化的呢?淘宝的技术团队对Java虚拟机的优化工作其实早已不是停留在简单的参数调制上面,而是充分结合了企业自身的业务特点以及实际的应用场景,在OpenJDK的基础之上通过修改大量的HotSpot源代码,深度定制了淘宝专属的高性能Java虚拟机——TaobaoVM。
既然是结合业务特点深度定制的一款Java虚拟机,那么性能必然在某一些特定的应用场景上会比Oracle官方的HotSpot更强,如图1-8所示。但其弊端同样也非常明显,那就是无法实现通用。所以如果只是想对TaobaoVM进行研究的话,可以参考http://jvm.taobao.org中的描述编译一个TaobaoVM,但如果需要应用在实际的项目中,笔者还是建议三思而后行,否则将会得不偿失。
淘宝的技术团队通过修改大量的HotSpot源代码深度定制的TaobaoVM[ 文章完整地址:http://os.51cto.com/exp/velocity2012/ppt/wangcheng.pdf。],其实从严格意义上来说,在提升Java虚拟机性能的同时,却严重依赖物理CPU类型。也就是说,部署有TaobaoVM的服务器中,CPU全都是清一色的Intel CPU,且编译手段采用的是Intel C/CPP Compiler进行编译,以此对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和诊断协助功能等。