JavaOne美国之行–Session篇
Session的總結(jié)是重頭戲,在這篇blog中,來分享下我參與過的Session,以及聽完后我對Session的評價和對于有收獲的Session制定的一些ActionPlan。
本屆JavaOne我總共參加了24個Session,主要集中在JVM方面以及ExperienceTalk方面,5分為最高分的話,我給這些Session的評分狀況如下所示:
從參加的Session來看,JavaOne中標(biāo)題黨的Session也是有一些的,但能夠得到收獲的Session還是有不少的,根據(jù)內(nèi)容以及Speaker挑選非常重要,通常,水平較高的Speaker總是不會讓你失望的,就算講的東西可能不能讓你滿意,但會后的交流一定會讓你受益匪淺,總體來說,我覺得參加這次JavaOne收獲的東西還是足夠多了,應(yīng)該算得上值回票價了,:)
Session的Speaker有不少是來自印度的,看來現(xiàn)在印度已經(jīng)從以前只是做技術(shù)含量低的外包工作,到現(xiàn)在成為core,領(lǐng)導(dǎo)技術(shù)的方向了,真是強(qiáng)悍呀。
接下來對參加的每個Session做一些介紹和總結(jié)。
9月20日
1.OSGiandJavaEE:AHybridApproachtoEnterpriseJavaApplicationDevelopment
評分★☆☆☆☆
總結(jié)
本來這場是打算去聽JDK7的,但同行的好幾個同學(xué)都感興趣,我就轉(zhuǎn)為聽這場OSGi的了,Speaker是兩個印度人,聽的我那個痛苦呀,還好對OSGi本來就有些基礎(chǔ),呵呵,整場停下來沒有太多的收獲,基礎(chǔ)性的東西介紹的比較多,另外就是介紹了下OSGi在對JavaEE方面支持的增強(qiáng),例如JNDI等,這些其實我也不怎么感興趣,聽到的唯一一個有點意思的東西是OSGi對webapplication的支持,看來在這么久沒關(guān)心后,這個東西還是有所增強(qiáng),現(xiàn)在折騰出了一個WebApplicationBundle,因此可實現(xiàn)和WAR直接的集成,這個值得看看。
行動計劃
具體的看看WebApplicationBundle。
2.WhereDoesAlltheNativeMemoryGo?
評分★☆☆☆☆
總結(jié)
這場是我期望非常高的一場,因為之前已經(jīng)碰到了一些NativeMemory消耗,又不是很好查的問題,但整場聽下來,并沒有給出什么好的解決方案,他給的解決方案還不如直接用googleperftools,但不得不說,PPT真的寫的非常系統(tǒng)化,這好像也是國外工程師不太一樣的地方,例如PPT中會先講到通常內(nèi)存是如何申請、使用和回收的,以及JRE中哪些部分是會使用nativememory,哪些是使用jvmheap的,這個是值得學(xué)習(xí)的,這也是JavaOne各場PPT給我的印象。
行動計劃
修改下我自己的那個SunJDK1.6GC的PPT,也更加系統(tǒng)化一點,同時也增加NativeMemory這部分消耗更細(xì)致的講解。
3.StepbyStep:GCTuningintheHotSpotJavaVirtualMachine
評分★★★★☆
總結(jié)
這場是Rockstar:TonyPrintezis同學(xué)幾乎每屆JavaOne都講的Topic,說實話,內(nèi)容沒太多新穎的地方,估計大家都是沖著人去的,但講的確實還是很不錯,給我的收獲主要是:優(yōu)先選用ParallelOldGC,如果暫停時間過長,則考慮CMS;CMS的一些調(diào)優(yōu)建議,例如和我之前經(jīng)歷過的盡量減少對象從新生代晉升到舊生代這點,還有開啟ParallelRefProcEnabled。
交流
Session結(jié)束后向兩個Speaker提了幾個問題,一是關(guān)于jmap-histo能否推出一個加強(qiáng)版,直接看到對象的引用關(guān)系,回答是這是NetBeansProfilerteam的事情,他們沒辦法控制;第二個問題是我測試了下G1,效果不是很好,是否有什么其他的tuning參數(shù),Tony給了我張名片,讓我email具體的日志信息給他,我想這是最大的收獲,哈哈。
行動計劃
修改我自己的那個SunJDK1.6GC的PPT,加上這里的一些調(diào)優(yōu)建議;
嘗試開啟ParallelRefProcEnabled,以及跟蹤下實際的采用CMS系統(tǒng)的內(nèi)存碎片的狀況。
4.TheNextBigJavaVirtualMachineLanguage
評分★☆☆☆☆
總結(jié)
這場一個是去的晚了點,坐在很后面,前面的人直接把PPT擋住了,后面一堆人在搖頭晃腦的找空隙點看PPT,另一方面是他說到的這些JDK中的弱點其實都是已知的,而且其實很多應(yīng)用是歷史原因,要切換到另一種語言成本是非常非常高的,因此還是更多的想想如何在現(xiàn)有的語言下做出更多的改進(jìn)比較靠譜。
5.ProjectLambda:ToMulticoreandBeyond
評分★★★★☆
總結(jié)
大牛Brian的Session,對于我這種之前對Lambda幾乎沒什么了解的人來說,還是非常不錯的,但其實Session結(jié)束后,我很想問一個問題:ProjectLambda要到JDK8才發(fā)布,是不是等的時間有點長了,呵呵。
行動計劃
看下lambda里面并行計算時線程數(shù)量是如何控制的,或者有知道的同學(xué)直接說下?
6.JavaOneKeynote
評分★★★☆☆
總結(jié)
貌似沒得到什么非常有價值的信息,更多的還是一些高層次的走向還有一些小的信息,例如hotspot將去掉permgen,要實現(xiàn)largeheapwithlowpauseGC等,很多是沒時間點的,這太要命了。
7.AdvancedMonitoringandTroubleshootingwithVisualVM
評分★★★☆☆
總結(jié)
由于自己之前對VisualVM還算有所了解和試用,介紹的東西有些太基礎(chǔ)了,唯一讓我眼前一亮的是原來現(xiàn)在已經(jīng)有這么多的visualvmplugins了,其中的trackerplugin很有意思,可以直接顯示類的方法執(zhí)行了多少次,耗時多少,我很好奇莫非jvm內(nèi)部之前是已經(jīng)有這樣的MBean可以獲取到的,如果是的話那豈不是完全不需要自己寫代碼來記錄這樣的信息了。
行動計劃
仔細(xì)看看TrackerPlugin。
9月21日
1.NewJavaVirtualMachineTricks:EnhancedHotCodeReplaceandMixinGeneration
評分★★★★★
總結(jié)
這場聽的我很興奮,:),一方面是PPT的系統(tǒng)化,讓我掌握了更多的codegeneration和codereplace可采用的技術(shù),以及他們的問題,目前已有的解決方案,以及最后最讓人興奮的springloaded的演示,聽完后讓我覺得如果可以采用springloaded,那對于開發(fā)效率的提升是可以起到很大很大的幫助的。
交流
問了下speaker,springloaded是純java寫的嗎,speaker說是的,runasanagent.
行動計劃
找到Springloaded,進(jìn)行試用,可惜杯具的是,我到現(xiàn)在為止都沒找到springloaded,莫非…這東西是商業(yè)的。
2.HowtoTuneandWriteLow-LatencyApplicationsontheJavaVirtualMachine
評分★★★★★
總結(jié)
很精彩的一場Session,Hotspot和JRockit的同學(xué)輪番講,告訴大家一些編寫低延時Java應(yīng)用的tips,:),得到的收獲主要有:知道了原來JRockit也是generationalgc,只是會做partialcompaction,另外說到了JRockit的realtime版本中的很猛的GC:DeterministicGC,allowingguaranteesofSLAs.,只有G1是打破generational這個傳統(tǒng)的,不過至少從論文來看,G1還是很靠譜的,盡管現(xiàn)在實現(xiàn)出來的效果還不好;應(yīng)該合理的設(shè)置TenuringThreshold,我之前一直覺得調(diào)這個太麻煩,就沒去做,看來還是值得嘗試下;理解你所使用的數(shù)據(jù)結(jié)構(gòu),避免expanding帶來的浪費,這個不錯,算是從寫代碼角度來看的一個pratice;避免使用Finalizers,這個在之前的blog中寫到的Deflater/Inflater內(nèi)存泄露就是因為使用Finalizers造成的。
行動計劃
試試合理設(shè)置TenuringThreshold,看來能帶來的效果如何。
3.JRockitmissioncontrolhol
評分★★★★★
總結(jié)
我去JavaOne之前,@rednaxelafx就一直強(qiáng)烈建議我一定要去參加hol,所謂hol就是指動手實驗,因此這是一個關(guān)于JRMC(JRockitMissonControl)的動手實驗,進(jìn)去會場后就看到一堆的電腦,然后有篇文檔告訴你怎么做,通過做一些練習(xí),讓你掌握如何通過JRMC來查找、分析一些問題,例如如何尋找到hotmethods,如何查看系統(tǒng)執(zhí)行慢的原因,如何分析內(nèi)存的分配等,做完練習(xí)后,發(fā)現(xiàn)確實非常猛,完全滿足我現(xiàn)在希望查找的一些問題,可惜呀,這東西目前還不支持hotspot,而JRockit是收費的,so…
另外一個不錯的地方是他給的這些練習(xí)的代碼寫的真的非常經(jīng)典,印象深刻的有兩個例子,其中一個你只需要改一行代碼,就可以讓運(yùn)行效率提升10倍,另外一個例子只需要改兩行代碼,就可以讓系統(tǒng)不做GC,這兩個例子太經(jīng)典了。
交流
問了下MarcusHirt(也就是OracleJRockit:TheDefenitiveGuide的作者,JRMC的leader)兩個問題,一是是否可不通過JRMC來觸發(fā)server進(jìn)行flightrecorder,回答是ofcourse,并演示了下,太TM簡單好用了;二是是否可跟蹤兩次gc之間allocation的狀況,回答讓我覺得我自己很土,其實只用在memory視圖上將查看的范圍縮為兩次gc之間就行了,哎,這可是我們夢寐以求的功能呀。
行動計劃
專門再寫篇文章結(jié)合hol的練習(xí)來向大家介紹下JRMC,順帶把這些練習(xí)的代碼提供給大家下載;
在自己的GCPPT中增加writefriendlycodetogc的部分。
4.JavaOnegeneraltechnicalsessions
評分★☆☆☆☆
總結(jié)
沒得到任何有價值的信息。
5.PerformanceandDebuggingAdvancementsinOpenJDK
評分★★★☆☆
總結(jié)
這場聽到的就是OpenJDK新的版本中對Compile部分的一個優(yōu)化,NMethodSweeper,據(jù)說能提升不少。
行動計劃
具體再看下這塊,OK的話可以再寫篇blog來介紹下這塊優(yōu)化的思想。
6.OpenJDKBOF
評分★★★☆☆
總結(jié)
這個Session的形式是由大家開放式的問些問題,OpenJDK的一伙commiter會來回答,由于沒準(zhǔn)備好,也沒去問問題,因此收獲很小。
7.7DeadlySinsofEnterpriseJavaProgrammingandDeploymentintheMulticoreEra
評分★☆☆☆☆
總結(jié)
其中一個Speaker是來自eBay的同學(xué),可惜由于現(xiàn)場突然出現(xiàn)PPT播放的問題,導(dǎo)致最后沒講完,而我又急著去下場,因此最終這場我?guī)缀鯖]聽到什么東西。
8.OSGiataLarge-ScaleEnterprise:LessonsfromeBay
評分★★☆☆☆
總結(jié)
簡單說就是期望太高,失望越大,這個Session中只講到了移植到OSGi是多么的痛苦,但并沒講好處是什么,eBay目前使用OSGi的狀況是什么。
交流
根據(jù)后面的交流,才終于更多的知道了一些,其實eBay目前只是把OSGi用到他們的tools里,并沒有應(yīng)用到主站系統(tǒng)上,好處方面之所以沒講什么,是因為Speaker認(rèn)為來聽的人都知道有什么好處,這個…
9月22日
1.ExperienceTalk:UnderstandingAdaptiveRuntimes
評分★★★★☆
總結(jié)
這場可是《OracleJRockit:TheDefeniteGuide》兩個作者開講,因此期望也很高,不過說實話,還真沒講太多東西,更多的東西其實都寫在書上了,反而是講了很多的JRMC。
花絮就是對提問的同學(xué)會現(xiàn)場送書,于是我也去問問題了,可惜等我問的時候,書已經(jīng)送完了,郁悶,我問的兩個問題:一個是關(guān)于G1的,我想聽聽JRockit的人怎么看G1,他們覺得G1目前尚未成熟,不好評價;第二個問題是什么時候JRMC會支持Hotspot,聽到的回答很杯具:aboutaftertwoyears,好吧…
2.TooBigtoFail:TopTipsforMassive,Mission-CriticalEnterpriseApplications
評分★★★★★
總結(jié)
這場比我期望高太多,如果要評聽過的最佳session,我想我會選這場,speaker有20年的工作經(jīng)驗,10年jvmcompiler的經(jīng)驗,10年銀行系統(tǒng)方面的經(jīng)驗,他其實只是簡單的給出了7個對于大型系統(tǒng)有幫助的tips,但可謂是個個擊中要害,并且還給你講明白為什么,明顯是經(jīng)驗豐富的人才能做到的,例如NUMA、sharereadonlydata、usehprof、beawareidentityhashcode,其中有些是知道的,并且在用的,有些還真不知道…
花絮是講到CompressedOOPS、NUMA的時候,speaker問有多少人知道或用過,下面竟然只有三、四個人,我很汗呀…
行動計劃
sharereadonlydata那個可以看看,方法不太一樣,竟然是jni上的NewDirectByteBuffer;
usehprof,我記得我之前用過,是因為效果不好,但看他的演示,我覺得可以試試,只是郁悶的是要把inline關(guān)掉,這個影響不知道會有多大;
測試identityhashcode的影響,現(xiàn)場的demo來看對GC的影響很大。
3.Top10CausesforJavaIssuesinProductionandWhattoDoWhenThingsGoWrong
評分★★★★☆
總結(jié)
還不錯,分享的幾個注意點都非常實在,不過基本都知道,這個session過程中有個環(huán)節(jié)挺好玩,就是說到為什么要注意GC呢,如果jvm實現(xiàn)商能提供一個flag就設(shè)置完內(nèi)存管理,那就完美了,:)
4.ApacheHarmony:AnOpenInnovation
評分★★★☆☆
總結(jié)
聽完后發(fā)現(xiàn)沒看到Harmony相對現(xiàn)在的幾個JVM,有任何的優(yōu)勢…
5.ShowdownattheJavaVirtualMachineCorral
評分★★★★☆
總結(jié)
這場其實很有意思,可惜得聽錄音才行,這場其實是三個使用面最廣的JVM(JRockit、J9、Hotspot)的主要作者們在上面回答PPT上的一些問題,挺有意思,:),可以聽得出各個JVM的不同發(fā)展重點。
9月23日
1.TheGarbageCollectionMythbusters
評分★★★★★
總結(jié)
還是Tony的Session,這場精彩很多,他和另外一個GCGroup的人一起講的,講的非常好,提到了大家對于GC的一些誤解,挺有意思的,例如gc是否能避免所有的內(nèi)存泄露,給了個很有趣的簡單例子;不要使用finalizers來釋放資源等。
交流
這場后問了Tony一個問題,就是是否能支持將對象放到一塊gc不掃描的區(qū)域(請注意,這個方式和Terracotta的offheap是很不一樣的),提升系統(tǒng)的性能;Tony說,我們也有考慮這個,但需要Oracle確認(rèn)。
聽完Tony的回答,我懂了…
行動計劃
提煉一些加到自己的GCPPT中。
2.Performancetuningfromthepros
評分★☆☆☆☆
總結(jié)
非常非常一般。
3.What’shappeninginmyapp:jvmmonitoringtools
評分★☆☆☆☆
總結(jié)
又一個商業(yè)的jvm監(jiān)控工具,不感興趣,盡管其號稱幫助jdk團(tuán)隊解決了一些問題。
4.ConcurrencygrabsfromeBay
評分★☆☆☆☆
總結(jié)
太基礎(chǔ)了點,盡管總結(jié)的還不錯,現(xiàn)場很多人盡管連copy-on-write這樣的pattern都不知道,而且還有很多人不知道線程池的類是不是在j.u.c里,好吧…
轉(zhuǎn)載于:https://blog.51cto.com/aliapp/1325773
總結(jié)
以上是生活随笔為你收集整理的JavaOne美国之行–Session篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机h5页面唤起打电话、发短信功能
- 下一篇: NS-3网络仿真平台搭建及可视化