Session的总结是重头戏,在这篇blog中,来分享下我参与过的Session,以及听完后我对Session的评价和对于有收获的Session制定的一些ActionPlan。

本届JavaOne我总共参加了24个Session,主要集中在JVM方面以及ExperienceTalk方面,5分为最高分的话,我给这些Session的评分状况如下所示:

从参加的Session来看,JavaOne中标题党的Session也是有一些的,但能够得到收获的Session还是有不少的,根据内容以及Speaker挑选非常重要,通常,水平较高的Speaker总是不会让你失望的,就算讲的东西可能不能让你满意,但会后的交流一定会让你受益匪浅,总体来说,我觉得参加这次JavaOne收获的东西还是足够多了,应该算得上值回票价了,:)
Session的Speaker有不少是来自印度的,看来现在印度已经从以前只是做技术含量低的外包工作,到现在成为core,领导技术的方向了,真是强悍呀。

接下来对参加的每个Session做一些介绍和总结。
9月20日
1.OSGiandJavaEE:AHybridApproachtoEnterpriseJavaApplicationDevelopment
评分★☆☆☆☆
总结
本来这场是打算去听JDK7的,但同行的好几个同学都感兴趣,我就转为听这场OSGi的了,Speaker是两个印度人,听的我那个痛苦呀,还好对OSGi本来就有些基础,呵呵,整场停下来没有太多的收获,基础性的东西介绍的比较多,另外就是介绍了下OSGi在对JavaEE方面支持的增强,例如JNDI等,这些其实我也不怎么感兴趣,听到的唯一一个有点意思的东西是OSGi对webapplication的支持,看来在这么久没关心后,这个东西还是有所增强,现在折腾出了一个WebApplicationBundle,因此可实现和WAR直接的集成,这个值得看看。
行动计划
具体的看看WebApplicationBundle。

2.WhereDoesAlltheNativeMemoryGo?
评分★☆☆☆☆
总结
这场是我期望非常高的一场,因为之前已经碰到了一些NativeMemory消耗,又不是很好查的问题,但整场听下来,并没有给出什么好的解决方案,他给的解决方案还不如直接用googleperftools,但不得不说,PPT真的写的非常系统化,这好像也是国外工程师不太一样的地方,例如PPT中会先讲到通常内存是如何申请、使用和回收的,以及JRE中哪些部分是会使用nativememory,哪些是使用jvmheap的,这个是值得学习的,这也是JavaOne各场PPT给我的印象。
行动计划
修改下我自己的那个SunJDK1.6GC的PPT,也更加系统化一点,同时也增加NativeMemory这部分消耗更细致的讲解。

3.StepbyStep:GCTuningintheHotSpotJavaVirtualMachine
评分★★★★☆
总结
这场是Rockstar:TonyPrintezis同学几乎每届JavaOne都讲的Topic,说实话,内容没太多新颖的地方,估计大家都是冲着人去的,但讲的确实还是很不错,给我的收获主要是:优先选用ParallelOldGC,如果暂停时间过长,则考虑CMS;CMS的一些调优建议,例如和我之前经历过的尽量减少对象从新生代晋升到旧生代这点,还有开启ParallelRefProcEnabled。
交流
Session结束后向两个Speaker提了几个问题,一是关于jmap-histo能否推出一个加强版,直接看到对象的引用关系,回答是这是NetBeansProfilerteam的事情,他们没办法控制;第二个问题是我测试了下G1,效果不是很好,是否有什么其他的tuning参数,Tony给了我张名片,让我email具体的日志信息给他,我想这是最大的收获,哈哈。
行动计划
修改我自己的那个SunJDK1.6GC的PPT,加上这里的一些调优建议;
尝试开启ParallelRefProcEnabled,以及跟踪下实际的采用CMS系统的内存碎片的状况。

4.TheNextBigJavaVirtualMachineLanguage
评分★☆☆☆☆
总结
这场一个是去的晚了点,坐在很后面,前面的人直接把PPT挡住了,后面一堆人在摇头晃脑的找空隙点看PPT,另一方面是他说到的这些JDK中的弱点其实都是已知的,而且其实很多应用是历史原因,要切换到另一种语言成本是非常非常高的,因此还是更多的想想如何在现有的语言下做出更多的改进比较靠谱。

5.ProjectLambda:ToMulticoreandBeyond
评分★★★★☆
总结
大牛Brian的Session,对于我这种之前对Lambda几乎没什么了解的人来说,还是非常不错的,但其实Session结束后,我很想问一个问题:ProjectLambda要到JDK8才发布,是不是等的时间有点长了,呵呵。
行动计划
看下lambda里面并行计算时线程数量是如何控制的,或者有知道的同学直接说下?

6.JavaOneKeynote
评分★★★☆☆
总结
貌似没得到什么非常有价值的信息,更多的还是一些高层次的走向还有一些小的信息,例如hotspot将去掉permgen,要实现largeheapwithlowpauseGC等,很多是没时间点的,这太要命了。

7.AdvancedMonitoringandTroubleshootingwithVisualVM
评分★★★☆☆
总结
由于自己之前对VisualVM还算有所了解和试用,介绍的东西有些太基础了,唯一让我眼前一亮的是原来现在已经有这么多的visualvmplugins了,其中的trackerplugin很有意思,可以直接显示类的方法执行了多少次,耗时多少,我很好奇莫非jvm内部之前是已经有这样的MBean可以获取到的,如果是的话那岂不是完全不需要自己写代码来记录这样的信息了。
行动计划
仔细看看TrackerPlugin。

9月21日
1.NewJavaVirtualMachineTricks:EnhancedHotCodeReplaceandMixinGeneration
评分★★★★★
总结
这场听的我很兴奋,:),一方面是PPT的系统化,让我掌握了更多的codegeneration和codereplace可采用的技术,以及他们的问题,目前已有的解决方案,以及最后最让人兴奋的springloaded的演示,听完后让我觉得如果可以采用springloaded,那对于开发效率的提升是可以起到很大很大的帮助的。
交流
问了下speaker,springloaded是纯java写的吗,speaker说是的,runasanagent.
行动计划
找到Springloaded,进行试用,可惜杯具的是,我到现在为止都没找到springloaded,莫非…这东西是商业的。

2.HowtoTuneandWriteLow-LatencyApplicationsontheJavaVirtualMachine
评分★★★★★
总结
很精彩的一场Session,Hotspot和JRockit的同学轮番讲,告诉大家一些编写低延时Java应用的tips,:),得到的收获主要有:知道了原来JRockit也是generationalgc,只是会做partialcompaction,另外说到了JRockit的realtime版本中的很猛的GC:DeterministicGC,allowingguaranteesofSLAs.,只有G1是打破generational这个传统的,不过至少从论文来看,G1还是很靠谱的,尽管现在实现出来的效果还不好;应该合理的设置TenuringThreshold,我之前一直觉得调这个太麻烦,就没去做,看来还是值得尝试下;理解你所使用的数据结构,避免expanding带来的浪费,这个不错,算是从写代码角度来看的一个pratice;避免使用Finalizers,这个在之前的blog中写到的Deflater/Inflater内存泄露就是因为使用Finalizers造成的。
行动计划
试试合理设置TenuringThreshold,看来能带来的效果如何。

3.JRockitmissioncontrolhol
评分★★★★★
总结
我去JavaOne之前,@rednaxelafx就一直强烈建议我一定要去参加hol,所谓hol就是指动手实验,因此这是一个关于JRMC(JRockitMissonControl)的动手实验,进去会场后就看到一堆的电脑,然后有篇文档告诉你怎么做,通过做一些练习,让你掌握如何通过JRMC来查找、分析一些问题,例如如何寻找到hotmethods,如何查看系统执行慢的原因,如何分析内存的分配等,做完练习后,发现确实非常猛,完全满足我现在希望查找的一些问题,可惜呀,这东西目前还不支持hotspot,而JRockit是收费的,so…
另外一个不错的地方是他给的这些练习的代码写的真的非常经典,印象深刻的有两个例子,其中一个你只需要改一行代码,就可以让运行效率提升10倍,另外一个例子只需要改两行代码,就可以让系统不做GC,这两个例子太经典了。
交流
问了下MarcusHirt(也就是OracleJRockit:TheDefenitiveGuide的作者,JRMC的leader)两个问题,一是是否可不通过JRMC来触发server进行flightrecorder,回答是ofcourse,并演示了下,太TM简单好用了;二是是否可跟踪两次gc之间allocation的状况,回答让我觉得我自己很土,其实只用在memory视图上将查看的范围缩为两次gc之间就行了,哎,这可是我们梦寐以求的功能呀。
行动计划
专门再写篇文章结合hol的练习来向大家介绍下JRMC,顺带把这些练习的代码提供给大家下载;
在自己的GCPPT中增加writefriendlycodetogc的部分。

4.JavaOnegeneraltechnicalsessions
评分★☆☆☆☆
总结
没得到任何有价值的信息。

5.PerformanceandDebuggingAdvancementsinOpenJDK
评分★★★☆☆
总结
这场听到的就是OpenJDK新的版本中对Compile部分的一个优化,NMethodSweeper,据说能提升不少。
行动计划
具体再看下这块,OK的话可以再写篇blog来介绍下这块优化的思想。

6.OpenJDKBOF
评分★★★☆☆
总结
这个Session的形式是由大家开放式的问些问题,OpenJDK的一伙commiter会来回答,由于没准备好,也没去问问题,因此收获很小。

7.7DeadlySinsofEnterpriseJavaProgrammingandDeploymentintheMulticoreEra
评分★☆☆☆☆
总结
其中一个Speaker是来自eBay的同学,可惜由于现场突然出现PPT播放的问题,导致最后没讲完,而我又急着去下场,因此最终这场我几乎没听到什么东西。

8.OSGiataLarge-ScaleEnterprise:LessonsfromeBay
评分★★☆☆☆
总结
简单说就是期望太高,失望越大,这个Session中只讲到了移植到OSGi是多么的痛苦,但并没讲好处是什么,eBay目前使用OSGi的状况是什么。
交流
根据后面的交流,才终于更多的知道了一些,其实eBay目前只是把OSGi用到他们的tools里,并没有应用到主站系统上,好处方面之所以没讲什么,是因为Speaker认为来听的人都知道有什么好处,这个…

9月22日
1.ExperienceTalk:UnderstandingAdaptiveRuntimes
评分★★★★☆
总结
这场可是《OracleJRockit:TheDefeniteGuide》两个作者开讲,因此期望也很高,不过说实话,还真没讲太多东西,更多的东西其实都写在书上了,反而是讲了很多的JRMC。
花絮就是对提问的同学会现场送书,于是我也去问问题了,可惜等我问的时候,书已经送完了,郁闷,我问的两个问题:一个是关于G1的,我想听听JRockit的人怎么看G1,他们觉得G1目前尚未成熟,不好评价;第二个问题是什么时候JRMC会支持Hotspot,听到的回答很杯具:aboutaftertwoyears,好吧…

2.TooBigtoFail:TopTipsforMassive,Mission-CriticalEnterpriseApplications
评分★★★★★
总结
这场比我期望高太多,如果要评听过的最佳session,我想我会选这场,speaker有20年的工作经验,10年jvmcompiler的经验,10年银行系统方面的经验,他其实只是简单的给出了7个对于大型系统有帮助的tips,但可谓是个个击中要害,并且还给你讲明白为什么,明显是经验丰富的人才能做到的,例如NUMA、sharereadonlydata、usehprof、beawareidentityhashcode,其中有些是知道的,并且在用的,有些还真不知道…
花絮是讲到CompressedOOPS、NUMA的时候,speaker问有多少人知道或用过,下面竟然只有三、四个人,我很汗呀…
行动计划
sharereadonlydata那个可以看看,方法不太一样,竟然是jni上的NewDirectByteBuffer;
usehprof,我记得我之前用过,是因为效果不好,但看他的演示,我觉得可以试试,只是郁闷的是要把inline关掉,这个影响不知道会有多大;
测试identityhashcode的影响,现场的demo来看对GC的影响很大。

3.Top10CausesforJavaIssuesinProductionandWhattoDoWhenThingsGoWrong
评分★★★★☆
总结
还不错,分享的几个注意点都非常实在,不过基本都知道,这个session过程中有个环节挺好玩,就是说到为什么要注意GC呢,如果jvm实现商能提供一个flag就设置完内存管理,那就完美了,:)

4.ApacheHarmony:AnOpenInnovation
评分★★★☆☆
总结
听完后发现没看到Harmony相对现在的几个JVM,有任何的优势…

5.ShowdownattheJavaVirtualMachineCorral
评分★★★★☆
总结
这场其实很有意思,可惜得听录音才行,这场其实是三个使用面最广的JVM(JRockit、J9、Hotspot)的主要作者们在上面回答PPT上的一些问题,挺有意思,:),可以听得出各个JVM的不同发展重点。

9月23日
1.TheGarbageCollectionMythbusters
评分★★★★★
总结
还是Tony的Session,这场精彩很多,他和另外一个GCGroup的人一起讲的,讲的非常好,提到了大家对于GC的一些误解,挺有意思的,例如gc是否能避免所有的内存泄露,给了个很有趣的简单例子;不要使用finalizers来释放资源等。
交流
这场后问了Tony一个问题,就是是否能支持将对象放到一块gc不扫描的区域(请注意,这个方式和Terracotta的offheap是很不一样的),提升系统的性能;Tony说,我们也有考虑这个,但需要Oracle确认。
听完Tony的回答,我懂了…
行动计划
提炼一些加到自己的GCPPT中。

2.Performancetuningfromthepros
评分★☆☆☆☆
总结
非常非常一般。

3.What’shappeninginmyapp:jvmmonitoringtools
评分★☆☆☆☆
总结
又一个商业的jvm监控工具,不感兴趣,尽管其号称帮助jdk团队解决了一些问题。

4.ConcurrencygrabsfromeBay
评分★☆☆☆☆
总结
太基础了点,尽管总结的还不错,现场很多人尽管连copy-on-write这样的pattern都不知道,而且还有很多人不知道线程池的类是不是在j.u.c里,好吧…

转载于:https://blog.51cto.com/aliapp/1325773

JavaOne美国之行–Session篇相关推荐

  1. JavaOne美国之行–走势篇

    JavaOne已经结束几天了,在走势方面,其实外部消息已经非常非常多了,毕竟现在Oracle掌控了Oracle.MySQL.两个使用面最广的JVM(JRockit.Hotspot)的发展方向,再结合我 ...

  2. 完全PHP5笔记之(COOKIE与SESSION篇)

    最近发现写博客也是提高 学习 效率的有效途径之一.好记性不如烂笔头,归纳总结时,你会发现总有一些东西你认为很熟了,它却在细微处讽刺你的错误.我学习COOKIE与SESSION 时,几乎把社区所有相关的 ...

  3. 企业架构(EA)美国之行

    企业架构(EA)美国之行   2010年赴美国考察学习方案 主办单位:美国联邦企业架构认证协会(FEAC) 协办单位:北达软信息化咨询与培训中心 北大CIO班教务办公室 企业架构(EA)作为信息化的方 ...

  4. JAVA伴我行——项目篇(一):开发模型,敏捷开发和瀑布模型的结合

    在项目的开发过程中,我们或多或少都会遵循一定的模式.最常见的就是瀑布模型了(也许平时没有注意,但你确实在遵循这个模型). 瀑布模型的典型表现就是遵循以下顺序:需求调研/分析,详细设计/概要设计,编码阶 ...

  5. 我的2016--旅行路线篇

    我的2016--旅行路线篇 第一站:溧阳(20160430-20160502)     这是我来到南京读书后的第一次外出旅行,很激动,也很期待,不过一切都像是被安排好的一样,就我们仨儿,事先准备停当, ...

  6. 水平集图像分割并行加速算法设计与实现(串行、OpenMP、CUDA)——串行实现篇

    本次水平集图像分割并行加速算法设计与实现包含:原理篇.串行实现篇.OpenMP并行实现篇与CUDA GPU并行实现篇四个部分.具体各篇章链接如下: 水平集图像分割并行加速算法设计与实现--原理篇 水平 ...

  7. 学生党的川藏骑行经验谈 篇一:骑行技巧装备

    学生党的川藏骑行经验谈 篇一:骑行技巧&装备 某天艳阳高照,鄙人饭后正稳稳的在宿舍床上刷着"什么值得买",刷得那个兴高彩烈啊!(小编请留意,此处应有掌声 ).突然,一哥们微 ...

  8. AD9910高速集成DDS芯片(芯片阅读笔记-串行模式篇-22个寄存器SPI通信周期控制)

    文章目录 引言 串行编程 利用官方软件得到寄存器值 福利连接 引言 本文为AD9910的芯片阅读笔记,本文并不是对芯片手册的纯粹照搬,所以建议结合芯片手册阅读.通过对AD9910芯片手册的理解,然后再 ...

  9. 探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

最新文章

  1. Android 之Tasks和Back Stack(任务和返回栈)
  2. 一次excel的countifs的成功应用
  3. html背景音乐demo,music.html
  4. docker搭建 LNMP 环境
  5. Spring Security 实战:登录成功后返回 JWT Token
  6. mxnet pick挑选
  7. 【数据挖掘笔记十二】离群点检测
  8. 1.单一职责原则(Single Responsibility Principle)
  9. 【Python】Python实战从入门到精通之一 -- 教你深入理解Python中的变量和数据类型
  10. 6.边缘检测:梯度——计算梯度Matlab实战_5
  11. android Camera 录像时旋转角度
  12. 安卓HTML中打开一个连接!点击跳转了,可以实现返回上一级的HTML的页面!
  13. HDU 2604 Queuing(矩阵高速幂)
  14. 中望cad能编写lisp吗_宁水集团:中望CAD解决方案增强设计创新力,加速转型促发展...
  15. 如何对shell脚本进行加密且不影响脚本运行
  16. selenium+java自动化测试环境搭建mac
  17. 搭建RoacketChat(v4.5.1)聊天服务。有生之年,我也能使用上自己搭建的聊天服务器
  18. #真女神转生3#PS2模拟器下开老金
  19. JS内功修炼-基础篇
  20. 超酷的HTML5 Canvas网络画板教程

热门文章

  1. Unity IOS游戏内好评
  2. java资源使用效率较高,Java 进程资源使用率较高问题定位
  3. 百度ueditor富文本--PC端单个,PC端多个,mobile单个,mobile多个
  4. 【好玩的策略模拟经营游戏】造物主 Reus for Mac
  5. 华为服务器TS200-2280安装HBA卡
  6. 管理感悟:如何成为一名合格的管理者
  7. NLP-阅读理解-2015:MRC模型-指导机器去阅读并理解【开篇之作】【完形填空任务】【第一次构建大批量有监督机器阅读理解训练语料】【三种模型结构:LSTM、Attention、Impatient】
  8. matlab 与cla的区别clf,何时使用cla(),clf()或close()清除matplotlib中的图?...
  9. 10月书讯(下) | 小长假我读这些新书
  10. 记录一次VCSA添加ESXI主机失败的处理过程