淘宝王琤:Taobao JVM的性能优势与价值体现
taobao JVM: http://jvm.taobao.org/
阿里集团作为中国最大的Java技术应用方,针对淘宝应用需求的JVM的优化定制是必要且收益巨大的。TaobaoJVM是基于OpenJDK VM并根据淘宝业务、应用特点及开发者需求开发的稳定,高效且深度定制的JVM版本。是国内第一个优化、定制且开源的服务器版Java虚拟机。
北京时间2012年12月4日Velocity China 2012 Web性能与运维大会在北京召开,在会中51CTO记者有幸采访到了阿里集团的王琤老师,王琤老师主要负责淘宝JVM的开发工作,基于OpenJDK VM 为淘宝定制、优化更加贴近应用需求的专用JVM。而在此次Velocity大会上,王琤老师主要为大家分享了《淘宝 JVM 优化实践》。也借此机会,51CTO编辑针对淘宝JVM这个话题跟王琤老师进行了一些沟通,分享给大家。
以下是采访内容:
51CTO:王老师您好,很多关心JVM技术的人都知道淘宝推出了开源的优化定制JVM版本:Taobao JVM,那么和Oracle官方的JVM版本相比,在性能上有哪些优势?
王琤(长仁):一提到淘宝JVM,大家肯定是关心性能,,性能是大家直观感受到的不同。从性能上来说由于Taobao JVM经过优化定制和官方版本相比在性能上有所提升。对于具体应用来说,根据很多应用特殊的性能需求我们有相应的优化点,比如刚才讲的我们有很多的Intrinsic,这是在oracle官方版本里不可能做的,因为这些需求不是很通用。对于hotspotvm它更关注更加通用化的性能改进。而淘宝JVM更贴近淘宝的Java应用,我们可以接触到一线的性能需求,根据这些需求进行优化。所以淘宝jvm的性能提升的幅度在刚才PPT里面大家可以看到,会很有优势。这不是说我们做的比Oracle好,而是说我们更贴近于用户需求,我们按特定需求做一些特定的优化.一定会比通用的优化更好,这点是我们最有优势。
51CTO:在这个开源项目上,您主要负责哪些工作?
王琤(长仁):我主要是负责专用计算组,我们开始做taobao JVM的时候只有我一个人,那是我刚刚来到淘宝的时候开始。大家有需求说我们淘宝以前对JVM的工作其实只能停留在参数调优,深入的去改它之前没有做过。我是因为来自Oracle,对于这方面接触过一些,所以我们就成立了这个组来专门的做taobao JVM,现在我们组的一部分同学在做taobao JVM,另外一部分在做专用计算的工作。
对于淘宝jvm这个项目,我的老板---章文嵩博士最早提出来要做这块,并且给予了很大的支持,他算是最初发起人。这个工作是淘宝需要的,因为淘宝是Java技术的最大应用方,是非常需要自己定制的JVM的。
51CTO:从JVM优化、定制及相关工具开发,有没有遇到哪些问题?您是如何去解决这些问题的?能否给网友分享下?
王琤(长仁):其实遇到的问题非常多,最大的问题还是人的问题。因为刚才讲到JVM的社区是非常小的,这部分的工作没有人很熟悉它,也因为社区太小,做这个东西的人很少。因为这点,所以相关的人才很难找到。这个最大的问题也就解释了为什么我们从一开始做到成果大规模应用经历了近2年的时间,在这么长的时间里主要的工作其实就是在培养人才。我们组的绝大部分同学其实都是应届的毕业生,从应届毕业生就开始培养,经过近3年培养,他们在这个领域已经做的很不错了。所以最大的问题还是在人的问题,而不在于技术本身。人才的培养我觉得环境很重要,像我们阿里集团的核心系统部,这个环境就是一个非常好的环境。可能对于一位应届生来说,他可能刚来的时候是一张白纸,当然在这么一个技术氛围非常浓重的环境里他可以快速成长,只要他自己努力就会成长的非常好。的团队,。来到这里的应届毕业生在2-3年的锻炼能达到这个水平已经是非常好的了。有的同学经过他自己的努力、兴趣并在我们这个环境里不断磨练,已经跳到美国OracleJVM团队参与JVM核心的开发工作。昨天正明(章文嵩博士)讲到我们在向Oracle输出人才,这一方面肯定了我们的工作,当然对于我们来说其实是好事也不是好事。所以环境是比较重要的,就是说你在这个环境里头会非常快速的成长。当然也借助这个机会希望更多有兴趣的同学能够加入到我们这个环境来做更多的事情。
51CTO:从淘宝,天猫全部替换了Oracle官方的JVM版本后,您觉得淘宝JVM的价值主要体现在哪方面?
王琤(长仁):线上很多已经替换了Oracle官方版本,价值主要体现在对应用方从心理上来说他们更加放心了。因为以前的时候JVM出问题,很难得到Oracle的支持。我们在Oraclebugdb上提Bug的时候反馈很不及时。现在用了我们的jvm话,我们组就会帮助他们解决问题,并且会专门为他们的需求来做一些JVM相关的工作,他们就觉得非常的放心。我们可能不用刻意关注具体的,比如性能,指标,功能点这些,单单从这一点来说其实大家就愿意来用我们的东西,因为更贴近他们,而且我们的服务很好。对于应用来说我们基本上都是面对面的上门服务。
51CTO:是否开放共享?
王琤(长仁):对,我们到现在所有的patch都在我们的jvm.taobao.org上,所有同学都可以到上面把patch抓下来。我们贡献出来让大家一起用,同时也希望大家参与到其中,做一些贡献。开放是淘宝一个很重要的基因,,我们不仅仅是有JVM的开源,淘宝还开源了淘宝的linux kernel,MySQL,tengine,还有很多很多的应用都开源。
51CTO:淘宝Hadoop集群在淘宝内部有个美丽的名字叫“云梯”,从您认识“云梯”并从事优化工作后,您觉得淘宝当初选择Hadoop的主要原因是什么?
王琤(长仁):“云梯”我的了解也有限,我感觉阿里用云梯最主要的原因就是看到了它开源的基因,它的庞大应用群以及活跃的社区。这个基因很重要,就是说它是一个开放的系统,它的社区很活跃,它的用户很多,有像facebook,yahoo,这些公司的开发者共同在这社区里面参与hadoop的工作,,我们也是参与者,我们的益处就是我们可以分享很多别人的工作成果,同时对它有贡献。其实我们的成本很低的,很合算。而且hadoop在阿里的整个离线分析,离线计算里面做出了很多的工作,实际上我们现在“云梯”的整个系统负荷挺高的,下面跑的作业也非常的多,非常的关键,很好的体现了它的价值。所以我感觉我们选择hadoop的最主要原因是它的开放性,他很好的解决了我们的问题,同时我们可以跟众多的开发者一起让它变得更好。
淘宝王琤:Taobao JVM的性能优势与价值体现相关推荐
- JVM解读-性能调优实例
2019独角兽企业重金招聘Python工程师标准>>> JVM性能调优 1 堆设置调优 年轻代大小选择 响应时间优先的应用:尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选 ...
- 一文了解程序员必须要知道的JVM和性能优化知识点
目录 JVM和性能优化 1.Java内存区域 虚拟机的历史 未来的Java技术一览 运行时数据区域 站在线程角度来看堆和栈 深入辨析堆和栈 方法的出入栈 虚拟机中的对象 堆参数设置和内存溢出实战 2. ...
- .NET 中密封类的性能优势
.NET 中密封类的性能优势 Intro 最近看到一篇文章 Performance benefits of sealed class in .NET,觉得写得不错,翻译一下,分享给大家. 目前看到的一 ...
- WCF性能优势体现 【转】
WCF性能优势决定了其受欢迎程度,这些优势主要都体现在:统一性:互操作性:安全与可信赖:兼容性等方面. WCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架. ...
- 服务器性能发挥,浪潮服务器发挥性能优势,算力“焦虑”问题被解决
导语: 随着智慧计算对数字经济增长的贡献日益凸显,智慧算力已成为各行业竞相追逐的对象.而浪潮服务器具备极致的计算性能和卓越的产品稳定性,在推动计算力向智慧算力升级方面有着得天独厚的性能优势,并凭借日益 ...
- nocount on_在SQL Server中设置NOCOUNT ON语句的用法和性能优势
nocount on Have you ever noticed SET NOCOUNT ON statement in T-SQL statements or stored procedures i ...
- 机器视觉LED光源的选择及其性能优势
机器视觉LED光源的选择及其性能优势 机器视觉系统使用的光源主要有三种:高频荧光灯.光纤卤素灯.LED照明.光源的选择是为了将被测物体与背景尽量明显分别,获得高品质.高对比度的图像.而光源的正确选择, ...
- JVM及性能优化(干货)
本人整理的JVM及性能优化相关的思维导图,额外包括如何编写优秀的Java代码等规范原则,有需要原图的可以登录ProcessOn进行克隆,克隆地址为:https://www.processon.com/ ...
- PE钢丝网骨架管的性能优势
PE钢丝网骨架管的性能优势 PE钢丝网骨架管是一种长距离埋地用供水.输气管道,由于适用条件的特殊性,也对此管材的性能提出一定的要求,既然它在这些情况下还是能被广泛的应用. 1.耐冲击性 钢丝网骨架复合 ...
最新文章
- python 数值的整数次方
- call stack and stack buffer overflow
- java面向方面编程_面向方面编程的介绍----基本概念
- asp.net本质论——HttpModule
- 普通索引和唯一索引,难道还分不清
- 安卓适配器类中怎么调用intent_设计模式:代理模式/中介者模式 / 桥接模式/适配器 - 七星望...
- python的xlwt库的作用_Python:使用第三方库xlwt来写Excel
- AC日记——由乃与大母神原型和偶像崇拜 洛谷 P3792
- 游戏程序中的骨骼插件
- bzoj2783: [JLOI2012]树
- 两岸大学生体验福州油纸伞制作技艺
- jQuery.callbacks 注释
- Chrome打开cocos2d-html5官方Demo黑屏
- ubuntu18.10 编译安装caffe gpu版本
- Java程序员如何写好一份个人求职简历
- linux 下载git源码,在linux系统下Git源码系统的文件下载
- 软考中级网络工程师全面学习笔记第1版(近4万字)
- 学习 react-native-sqlite-storage 案例
- linux下载finger程序,Linux的finger命令
- office运行时错误,部分系统文件可能丢失或已损坏(错误代码:0x80040154)
热门文章
- 带倍速音频播放器_带有播放列表HTML5音频播放器
- Awesome Adb——一份超全超详细的 ADB 用法大全【转】
- Outlook Express 收发邮件出现0x800CCC0F错误代码解决方法
- ROC/AUC、精准率、召回率、真正率,假正率等指标含义,学习笔记
- Chrome常见黑客插件及用法
- 12、ABPZero系列教程之拼多多卖家工具 拼团提醒功能登录拼多多实现
- Payment:接入支付宝当面付(扫码支付与条码支付)教程
- 一个屌丝程序员的青春(三七九)
- 论文模型构建的步骤_Deep Learning of Graph Matching论文解读
- 图像分类网络-经典CNN网络简介