java joptionpane调整大小_Java开发者应当理解的专业术语

Java开发者应当理解的专业术语

本文将和你分享一些 JVM “专业术语”,程序员在对 JVM 做任何的性能和垃圾回收调整之前理解和记住这些“专业术语”是非常重要的。在文章的最后还提供一些小技巧,包括一些高性能微调的最佳实践。关于 Oracle HotSpot 的并发垃圾回收器,例如 CMS 和 G1 的进一步建议将在后续文章中探讨。 在深入阅读之前,我建议你先熟悉《JVM 详细 GC 输出日志》。获得这个 JVM 数据分析技能是至关重要的,特别是当与更加复杂的 APM 技术结合使用的时候。

JVM 专业术语

  • 分配率(Allocation Rate) Java 对象被分配到年轻代内存空间,又名 “短暂的”对象
  • 转换率(Promotion Rate) Java 对象从年轻代转移到年老代
  • 存活数据(LIVE Data) 被分配在年老代内存空间的 Java 对象,又名 “长寿”对象
  • 暂停应用程序运行进行垃圾回收(Stop-the-world Collection) 垃圾回收,例如完全垃圾回收,造成你的应用程序线程短暂性挂起直到垃圾回收完成

第一件事情:JVM 垃圾回收日志

  • 提供有关 Java 堆栈和垃圾回收活动黑盒内的详细细节
  • 使用工具,例如 GCMV(垃圾回收内存可视化),用于评估 JVM 暂停时间和内存分配率,以及可以手工调整代内存大小(译者注:这里的“代”指 JVM 中的年轻代,年老代以及永久代)。
aa540e23107dd7d71b4534857cf8e5ee.png

分配和转换率

  • 跟踪程序的分配率和转换率对于垃圾回收性能优化是非常重要的。
  • GCAdaptiveSizePolicy 参数是 JVM 不可分割的一部分,保持该参数有效。仅在必要时手动调整。
aec54be16489429dc275da008b75004c.png
f46738b922ba8e081e3e4d2efc5e62ab.png

存活数据计算

  • 一次完全垃圾回收之后应用程序依旧存活的数据被分配到年老代。
  • 你的年老代容量要足够大是至关重要的,为了能够轻易容纳你的应用程序存活数据,也为了能够限制应用程序主要垃圾回收的频率,还为了能够减轻对应用程序负载吞吐量的影响。

建议:刚开始,调整 Java 堆大小,以达到一次完全垃圾回收之后年老代占用或者大约占用 50% 的内存,使得高负载情况(故障转移,高峰,业务繁忙时段)能够提供做够大的缓存。

  • 要点:注意年老代的内存溢出!
  • 在 Java 中什么是内存溢出?随着时间的推移存活数据不断增加……
8fda91c4a4bf54c0cb30b5f817ba15ec.png

深入存活数据

  • JVM 的垃圾回收日志很棒……但是你如何检查你的存活数据呢?
  • Java 堆直方图快照和堆转储分析是强大而成熟的方法,能够更好地了解您的应用程序的存活数据。
  • Java 剖析解决方案和工具,例如 Oracle Java Mission Control,Java Visual VM 为 Java 堆的检查和分析提供了高级特性,包括应用程序内存分配的跟踪。
288a6b813fcf9e1d7c11e1425ec903d7.png

Stop-the-world Collections: GC Overhead

  • 年轻代垃圾回收性能消耗低,但是要注意不要超过分配率
  • 建议初始分配年轻代大小(JVM 默认大小)为堆大小的 1/3
  • 记住:年轻代和年老代垃圾回收两者都需要停止程序运行的时间。
  • 永久代和元空间(JDK 1.8+)在完全垃圾回收时进行,因此跟踪类元数据和垃圾回收的频率是非常重要的。
6fe457ca99aed8d1498f9b7d5369ef2c.png
36c8004cfd6b6937047d811f2dd48124.png

最后的话语和建议

最佳实践

最佳实践

  • 优化 Java 性能不只是关于 Java……探索各个角度。
  • 始终依靠事实,而不是猜测。
  • 首要集中注意力在全局微调而不是过早的细粒度优化。
  • 适当时进行性能测试和负载测试。
  • 利用可用的可靠工具和故障排除技巧。

避免

  • 可能有几十个 JVM 参数,不要过度调整你的 JVM!
  • 你总是怕你不明白的东西:良好的应用知识 > 无惧 > 更好的优化建议。
  • 不要假设你的应用程序的性能是最佳的。
  • 不要试图一次性解决所有问题,逐步实现调整。
  • 不要混淆并专注于导致性能问题的根源而不是症状。
  • 过多试错法:猜测症状。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值