1-2-性能工程師指南:玩轉OpenJDK HotSpot垃圾收集器-Leader Monica Beckwith_第1頁
1-2-性能工程師指南:玩轉OpenJDK HotSpot垃圾收集器-Leader Monica Beckwith_第2頁
1-2-性能工程師指南:玩轉OpenJDK HotSpot垃圾收集器-Leader Monica Beckwith_第3頁
1-2-性能工程師指南:玩轉OpenJDK HotSpot垃圾收集器-Leader Monica Beckwith_第4頁
1-2-性能工程師指南:玩轉OpenJDK HotSpot垃圾收集器-Leader Monica Beckwith_第5頁
已閱讀5頁,還剩133頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

/in/monicabeckwith12PerformanceEngineering3?2016CodeKaram3PerformanceAPerformanceAnalysisPerformanceEngineeringPerformanceRequirements&TestPlan&Development4?2016CodeKaramDesignImplementation?2016CodeKaramDesignImplementationRequirementsPerformanceRequirements&TestPlan&DevelopmentPerformanceAnalysis5PerformanceRequirements6?2016CodeKaram6Throughput?Capacity?Responsetimes?Throughput?Capacity?Responsetimes?PerformanceRequirementsAvailability?Footprint?PerformanceAnalysis78?2016CodeKaramProfilingMonitoring?2016CodeKaramProfilingMonitoringSystemUnderTestUtilization,LockStats,…Application,System,Memory,…PerformanceAnalysisAnalyzinglogs9JVMPerformanceEngineering?2016JavaJavaAPIJREJavaJavaApplicationClassClassloaderRuntimeJITCompilerJavaVMOS+HardwareGC?2016CodeKaramJITCompiler?2016CodeKaramJITCompiler+RuntimeJavaDevelopmentKitGarbageCollector/CollectionStudy,Analyze,TuneJavaAPIGarbageCollectionPerformanceEngineering?2016Online&OfflineGCOnline&OfflineGCMonitoringJVMMonitoringHeapProfilingApplicationProfilingGCPerformanceEngineeringProcess&PlotGClogsGarbageCollection-Facts,Trade-OffsAndAlgorithms?2016GCFact!?GCcanNOTeliminateyourmemoryleaks!?GC(andheapdump)canprovideaninsightintoyourapplication.?2016?2016CodeKaram?2016GCFact!ThroughputandlatencyarethetwomaindriverstowardsrefinementofGCalgorithms.?2016CodeKaramGenerationalConcurrentThreadsYoungOld?2016CodeKaramGenerationalConcurrentThreadsYoungOldMaximizeThroughputParallelWorkStop-the-worldThreads?2016PauseonlywhenneededNoPauseonlywhenneededNo/PartialCompactionLatencySensitiveConcurrentMarking/SweepingReduceReducestop-the-worldGCpausetime?2016Let’slookatOpenJDKHotSpotGCs:)?2016MaximizerParallelMaximizerParallelGCSensitiveThroughputCMSGCG1GCLatency?2016GCFact!AllGCsinOpenJDKHotSpotaregenerational.?2016?2016CodeKaramYoungGenerationOldGenerationEdenSurvivors?2016?2016CodeKaramEdenSurvivorsAllocationsYoungGenerationFastPathAllocation==Lock-FreeAllocation==ThreadsAllocateIntoTheirLocalAllocationBuffer(LAB)s??2016CodeKaramEdenTLABTLABTLABTLABTLABTLABTLAB=ThreadLocalAllocationBuffer?20163TLABTLAB3TLABTLABTLABTLABTLABThreadThreadThreadThreadThread0Eden1Eden44?2016?2016CodeKaramEdenSurvivorsAllocationsYoungGeneration?2016?2016CodeKaramEdenSurvivorsAllocationsYoungGenerationGarbageCollection-Reclamation.?2016YoungGenerationOldGenerationEdenEden?2016YoungGenerationOldGenerationDifferentDifferentGCAlgorithmsforOpenJDKHotspot*SimilarGCAlgorithmsforOpenJDKHotSpotAlwayscollectedinitsentirety?2016YoungGenerationOldGenerationDifferentGCAlgorithmsforDifferentGCAlgorithmsforOpenJDKHotspotAlgorithmsforOpenJDKHotSpotAlwayscollectedinitsentiretyYoungGarbageCollection==ReclamationViaScavenging?2016RootSetYoungGenerationOldGeneration??2016CodeKaramYoungGenerationEdenSurvivor??2016CodeKaramYoungGenerationEdenSurvivor??2016CodeKaramYoungGenerationEdenSurvivorOldGarbageCollection==DifferentGCAlgorithms?2016CodeKaramThe?2016CodeKaramYoungGenerationOldGenerationMultiMulti-Threaded-EntireHeapMarked,SweptandCompactedinitsentiretyMulti-ThreadedAlwayscollectedinitsentirety?2016Multi-ThreadedMulti-Multi-ThreadedMulti-Threaded-EntireHeapMarked,SweptandCompactedinitsentiretyYoungGenerationOldGenerationAlwayscollectedinitsentirety?2016GarbageCollection-ReclamationviaParallelMark-CompactRootSetYoungGenerationOldGeneration?2016GarbageCollection-ReclamationviaParallelMark-CompactOldGeneration?2016GarbageCollection-ReclamationviaParallelMark-CompactOldGeneration?2016OldOldGenerationGarbageCollection-ReclamationviaParallelMark-Compactsourceregiondestinationregion?2016OldOldGenerationGarbageCollection-ReclamationviaParallelMark-Compactsourceregiondestinationregion?2016OldOldGenerationGarbageCollection-ReclamationviaParallelMark-Compactsourceregionsourceregiondestinationregion?2016OldOldGenerationGarbageCollection-ReclamationviaParallelMark-Compactsourceregionsourceregiondestinationregion?2016GarbageCollection-ReclamationviaParallelMark-CompactOldGeneration?2016YoungGenerationOldGenerationMultiMulti-Threaded-MostlyConcurrentMarkedandentiretyMulti-ThreadedSweptinitsAlwayscollectedinitsentirety?2016YoungGenerationOldGenerationMultiMulti-Threaded-MostlyConcurrentMarkedandSweptinitsentiretyMulti-ThreadedAlwayscollectedAlwayscollectedinits?2016YoungGenerationOldGenerationMultiMulti-Threaded-MostlyConcurrentMarkedandSweptinitsentiretyMulti-ThreadedAlwayscollectedinAlwayscollectedinitsentirety?2016CodeKaramGarbageCollection-?2016CodeKaramReclamationviaMark-SweepFreeListOldGenerationOldGeneration?2016CodeKaramOldGeneration?2016CodeKaramReclamationviaMark-SweepFreeList?2016GCFact!Allnon/partialcompactingGCsinOpenJDKHotSpotfallback*toafullycompactingstop-the-worldgarbagecollectioncalledthe“full”GC.*TuningcanhelpavoidorpostponefullGCsinmanycases.?2016GarbageCollection-ReclamationviaMark-Sweep-CompactYoungGenerationOldGenerationSingleSingleThreaded-EntireHeapMarked,SweptandCompactedinitsentirety?2016GarbageCollection-ReclamationviaMark-Sweep-CompactYoungGenerationOldGenerationSingleThreaded-EntireHeapMarked,SweptandCompactedinitsentiretyWhatAboutGarbageFirstGC???2016CodeKaramContiguousJavaHeapFreeRegionNon-FreeRegion?2016CodeKaramEdenOldEdenOldTheGarbageFirst?2016CodeKaramEdenOldEdenOldSurvivorSurvivorOOldHHumongous61?2016CodeKaramTheGarbageFirstCollectorE.g.:CurrentEEdenOOldheapconfiguration-SurvSurvivorOOldEEdenOld62?2016CodeKaramEdenOldE.g.:DuringEdenOldE.g.:Duringayoungcollection-TheGarbageFirstCollectorSurvSurvivorOOldEEdenOld63?2016CodeKaramOldOldOldTheGarbageFirstCollectorE.g.:Afterayoungcollection-OlOldOOldSurSurvivor64?2016CodeKaramOldEdenSurOldEdenSurvivorOldTheGarbageFirstCollectorE.g.:Currentheapconfiguration-OlOldOOldEEdenOOld?2016CodeKaramOldEden?2016CodeKaramOldEdenSurvivorOldTheGarbageFirstCollectorOldE.g.:Reclamationofagarbage-filledregionduringthecleanupphase-OldOOldEEdenOOld?2016CodeKaramOld?2016CodeKaramOldEdenOldTheGarbageFirstCollectorOldE.g.:Reclamationofagarbage-filledregionduringthecleanupphase-OldOOldEEdenSurSurvivor67?2016CodeKaramOldEOldEdenOldTheGarbageFirstCollectorE.g.:Currentheapconfiguration-OlOldOOldEEdenSurSurvivor?2016CodeKaramOldE?2016CodeKaramOldEdenOldTheGarbageFirstCollectorE.g.:E.g.:DuringamixedOlOldOOldEEdenSurSurvivor69?2016CodeKaramSurvSurvivorOldTheGarbageFirstCollectorE.g.:Afteramixedcollection-OOldOOldimeinmillisecondsInitiatingHeapOccupancyPercent?2016CodeKaramimeinmillisecondsInitiatingHeapOccupancyPercent?2016CodeKaram034153416.33417.23418.4341934223423.43432.23433.23436.83437.63438.93440ampsYoungCollectionInitialMarkRemarkCleanupMixedCollectionFinally,Let’sTalkAboutTuning!:)TuningGCForThroughputOrForLatency??GCElapsedTimeOrGCOverheadGCElapsedTimeindicatedtheamountoftimeittakestoexecutestoptheworldGCeventsThehighertheGCelapsedtime-thelowertheapplicationresponsivenessduetotheGCinducedlatencies74?2016CodeKaram??2016CodeKaramOverheadisanindicationofthefrequencyofstoptheworldGCevents.Themorefrequent

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論