Java开发人员应了解的JVM流行语
生活随笔
收集整理的這篇文章主要介紹了
Java开发人员应了解的JVM流行语
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文將與您分享一些JVM“流行語”,它們對于Java開發人員在執行任何JVM性能和垃圾回收調優之前理解和記住非常重要。 本文末尾還提供了一些技巧,包括一些高級性能調優最佳實踐。 將來的文章中將探討有關Oracle HotSpot并發GC收集器(例如CMS和G1)的更多建議。
在繼續閱讀之前,建議您首先熟悉JVM詳細的GC日志。 掌握此JVM數據分析技能至關重要,尤其是與更高級的APM技術結合使用時。
JVM流行語
| 分配率 | 分配給YoungGen空間的Java對象, 亦稱“短暫”對象。 |
| 促銷率 | Java對象從 YoungGen來 OldGen空間。 |
| 實時數據 | 坐在OldGen空間中的Java對象,也稱為“長壽”對象。 |
| 世界停止收集 | 垃圾收集,例如Full GC,并導致應用程序線程暫時掛起,直到完成。 |
首先,JVM GC日志
- 提供有關Java堆和GC活動的開箱即用的詳細信息。
- 使用GCMV (GC內存可視化工具)之類的工具來評估JVM暫停時間和內存分配率,而不是手動確定世代大小。
分配率和促銷率
- 重要的是要跟蹤應用程序的分配和提升率,以獲得最佳的GC性能。
- 作為JVM人機工程學的一部分,保持GCAdaptiveSizePolicy處于活動狀態。 僅在需要時手動調音。
實時數據計算
- 完整GC后,您的實時應用程序數據對應于OldGen占用率。
- 至關重要的是,您的OldGen容量必須足夠大,以舒適地保存您的實時數據,并限制主要收集的頻率以及對應用程序負載吞吐量的影響。
建議:首先,調整Java Heap的大小,以使OldGen占用空間或Full GC后達到約50%的占用率,從而為某些較高的負載情況(故障轉移,峰值,繁忙的業務時段...)留有足夠的緩沖。
- *熱門* :注意OldGen內存泄漏!
- 什么是Java中的內存泄漏? 隨著時間的推移,實時數據不斷增加 ……
實時數據深入研究
- JVM GC日志很棒……但是如何檢查實時數據呢?
- Java堆直方圖快照和堆轉儲分析是功能強大且行之有效的方法,可以更好地了解您的應用程序實時數據。
- Java事件探查器解決方案和工具(例如Oracle Java Mission Control和Java Visual VM)提供了用于深度Java堆檢查和性能分析的高級功能,包括跟蹤應用程序內存分配。
世界各地的收藏:GC開銷
- YoungGen收集的價格較低,但要注意分配率過高。
- 建議最初將YoungGen的大小調整為(JVM默認)堆大小的1/3。
- 請記住:YoungGen和OldGen集合都是世界停止的事件!
- PermGen和Metaspace(JDK 1.8+)是在Full GC期間收集的,因此,跟蹤Class元數據足跡和GC頻率非常重要。
最后的話語和建議
最佳實踐
- 最佳的Java性能不僅僅與Java有關……探索所有角度。
- 始終依靠事實而非猜測。
- 首先關注全局調整項,而過早的細粒度優化則要重點。
- 如果適用,請執行性能和負載測試。
- 充分利用經過驗證的工具和故障排除技術。
避免
- 有許多可能的JVM參數:不要過度調整JVM!
- 您始終會擔心自己不了解的內容:良好的應用程序知識>無懼>更好的調優建議。
- 永遠不要以為您的應用程序性能是最佳的。
- 不要試圖立即解決所有問題,而要逐步進行調整。
- 不要感到困惑,要專注于性能問題的根本原因而不是癥狀。
- 過度嘗試和錯誤的方法:猜測的癥狀。
翻譯自: https://www.javacodegeeks.com/2015/07/jvm-buzzwords-java-developers-should-understand.html
總結
以上是生活随笔為你收集整理的Java开发人员应了解的JVM流行语的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 荷兰公司 PAL-V 在德国开设飞行汽车
- 下一篇: 绿联 DX2800 / DX4800 私