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暂停时间和内存分配率,而不是手动确定世代大小。

JVM_buzzwords_YG

JVM_buzzwords_OG

分配率和促销率

  • 重要的是要跟踪应用程序的分配和提升率,以获得最佳的GC性能。
  • 作为JVM人机工程学的一部分,保持GCAdaptiveSizePolicy处于活动状态。 仅在需要时手动调音。

JVM_YG_allocation_rate

JVM_OG_allocation_rate

实时数据计算

  • 完整GC后,您的实时应用程序数据对应于OldGen占用率。
  • 至关重要的是,您的OldGen容量必须足够大,以舒适地保存您的实时数据,并限制主要收集的频率以及对应用程序负载吞吐量的影响。

建议:首先,调整Java Heap的大小,以使OldGen占用空间或Full GC后达到约50%的占用率,从而为某些较高的负载情况(故障转移,峰值,繁忙的业务时段...)留有足够的缓冲。

  • *热门* :注意OldGen内存泄漏!
  • 什么是Java中的内存泄漏? 随着时间的推移,实时数据不断增加 ……

JVM_LIVE_data

实时数据深入研究

  • JVM GC日志很棒……但是如何检查实时数据呢?
  • Java堆直方图快照和堆转储分析是功能强大且行之有效的方法,可以更好地了解您的应用程序实时数据。
  • Java事件探查器解决方案和工具(例如Oracle Java Mission Control和Java Visual VM)提供了用于深度Java堆检查和性能分析的高级功能,包括跟踪应用程序内存分配。

Java_Visual_VM_histogram

世界各地的收藏:GC开销

  • YoungGen收集的价格较低,但要注意分配率过高。
  • 建议最初将YoungGen的大小调整为(JVM默认)堆大小的1/3。
  • 请记住:YoungGen和OldGen集合都是世界停止的事件!
  • PermGen和Metaspace(JDK 1.8+)是在Full GC期间收集的,因此,跟踪Class元数据足迹和GC频率非常重要。

JVM_GC_开销

JVM_YG_overhead

最后的话语和建议

最佳实践

  • 最佳的Java性能不仅仅与Java有关……探索所有角度。
  • 始终依靠事实而非猜测。
  • 首先关注全局调整项,而过早的细粒度优化则要重点。
  • 如果适用,请执行性能和负载测试。
  • 充分利用经过验证的工具和故障排除技术。

避免

  • 有许多可能的JVM参数:不要过度调整JVM!
  • 您始终会担心自己不了解的内容:良好的应用程序知识>无惧>更好的调优建议。
  • 永远不要以为您的应用程序性能是最佳的。
  • 不要试图立即解决所有问题,而要逐步进行调整。
  • 不要感到困惑,要专注于性能问题的根本原因而不是症状。
  • 过度尝试和错误的方法:猜测的症状。

翻译自: https://www.javacodegeeks.com/2015/07/jvm-buzzwords-java-developers-should-understand.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机制图笔记本需要什么配置,绘图笔记本需要什么配置?

ACER 宏碁型号 EX4630ZG-421G25MnCPU平台 Intel平台速度 T4200 2.00GHz系统总线 800MHz二级缓存 1MB屏幕尺寸 14寸类型 WXGA显示芯片 NVIDIA GeForce 9300M GS 独立显示芯片显存容量 独立256MB内存容量 1GB速度 DDR2硬盘容量 250G转速 5400转/分钟接口类型 SATA串行光存储 DVDR…

【ECharts系列|02可视化大屏】 舆情分析,人口分析及警情警力活动情况的实现【上篇】

简介&#xff1a;ECharts实现可视化大屏展示&#xff0c;包含人口分析&#xff0c;警情警力分析多张效果图&#xff0c; 完整的htmlcssjsimg:https://download.csdn.net/download/weixin_41937552/16361615 项目结构&#xff1a; activity.html <!doctype html> <met…

算法属于计算机服务还是软件,第06讲 服务器软件设计的算法和问题

第06讲 服务器软件设计的算法和问题本文由&#xff32;&#xff49;&#xff43;&#xff48;&#xff41;&#xff52;&#xff44;&#xff10;&#xff10;&#xff17;&#xff3f;&#xff4c;&#xff49;&#xff4e;贡献&#xff50;&#xff50;&#xff54;&#xff…

那些遇到的position-fixed无效事件

本篇文章由&#xff1a;http://xinpure.com/position-fixed-encountered-an-invalid-event/ 第一次无效事件 事件主角: transform 应用环境: Chrome/FireFox 事件回顾: 这是在使用 iscroll js滚动库的时候&#xff0c;遇到的问题 当时的需求是需要在滚动到一定的距离的时候&…

spring rmi_Spring远程支持和开发RMI服务

spring rmiSpring远程支持简化了启用远程服务的开发。 当前&#xff0c;Spring支持以下远程技术&#xff1a;远程方法调用&#xff08;RMI&#xff09;&#xff0c;HTTP调用程序&#xff0c;Hessian&#xff0c;Burlap&#xff0c;JAX-RPC&#xff0c;JAX-WS和JMS。 远程方法调…

计算机dos通讯,PC双机通信DOS

《PC双机通信DOS》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《PC双机通信DOS(64页珍藏版)》请在人人文库网上搜索。1、1 第第9 9章章 串行通信接口串行通信接口 主要内容&#xff1a;主要内容&#xff1a;1 1、串行传送的基本概念、串行传送的基本概念 2 2、串行通…

用Paint Tool SAI绘制漫画

漫画绘图软件 Paint Tool SAI是一个来自日本的小巧的漫画辅助绘图软件&#xff0c;只有11M大小。 这个没有任何现成的模板和组件&#xff0c;只能自己一笔一笔的话&#xff0c;画笔、图层等功能与Photoshop类似&#xff0c;但没有PS其它大量功能&#xff0c;因此操作更加便捷&a…

【ECharts系列|02可视化大屏】 舆情分析,人口分析及警情警力活动情况的实现【下篇】

简介&#xff1a;ECharts实现可视化大屏展示&#xff0c;包含人口分析&#xff0c;警情警力分析多张效果图&#xff0c; 完整的htmlcssjsimg:https://download.csdn.net/download/weixin_41937552/16361615 上一篇&#xff1a;【ECharts系列|02可视化大屏】 舆情分析&#xff0…

uts计算机博士,澳大利亚悉尼科技大学 (UTS) 招收2021/2022年 全奖博士生 (软件工程/人工智能方向)...

☞招收2022年第一学期入学&#xff0c;软件工程&#xff0c;人工智能方向csc博士生, 访问学生和全奖学生。学校介绍:澳大利亚悉尼科技大学(uts)座落于风景优美的悉尼市中心&#xff0c;毗邻darling harbour&#xff0c;中国城&#xff0c;悉尼歌剧院。uts是世界知名研究学府&am…

在WildFly上将JPA和CDI Bean与骆驼一起使用

我并没有真正为此计划&#xff0c;但是在一个免费的会议月份中&#xff0c;我有机会进行了一些深入的探讨&#xff0c;并向您展示了WildFly-Camel子系统提供的WildFly魔术上的更多Camel。 商业背景 该演示来自Christina Lin在JBoss Demo-Central上的演示 。 她演示了Camel中Fi…

C#开发微信公众平台-就这么简单(附Demo)(转)

原文&#xff1a;http://www.cnblogs.com/xishuai/p/3625859.html 写在前面 阅读目录&#xff1a; 服务号和订阅号URL配置创建菜单查询、删除菜单接受消息发送消息&#xff08;图文、菜单事件响应&#xff09;示例Demo下载后记最近公司在做微信开发&#xff0c;其实就是接口开发…

【ECharts系列|03可视化大屏】大数据管理平台实时展示

基于echats实现可视化大数据管理平台实时展示。 完整htmlcssjsjsonfontvideo:https://download.csdn.net/download/weixin_41937552/16362433 项目结构&#xff1a; index.html <!DOCTYPE html> <html lang"en"> <head><link href"css/Bi…

计算机共享盒子,电脑之间如何共享文件

方法一&#xff1a;网上邻居共享1.这种方法比较适合家庭以及两台电脑之间文件的共享&#xff0c;权限管理比较简单&#xff0c;实现为了方便两台点之间共享。2.保证通信可用&#xff0c;需要做到两台电脑之间处于同一个网段内。3.具体操作&#xff1a;(1)右键【我的电脑】选择【…

在C#中开启事务

1.为什么要开启事务&#xff1a; 举一个简单的例子&#xff1a;在银行业务中&#xff0c;有一条记账原则&#xff0c;即又借有贷。为了保证这种原则&#xff0c;每发生一笔银行业务&#xff0c;就必须保证会计账目上借方科目和贷方科目至少个少一笔&#xff0c;并且这两笔要么同…

【ECharts系列|04可视化大屏】ECharts可视化经典案例总结

收集整理一些ECharts实现可视化大屏效果的一些经典案例&#xff0c;方便在工作的时候及时的响应客户&#xff0c;及修改展示&#xff0c;根据业务需求在此基础修改即可。 第一篇为Echarts入门文档&#xff0c;如果没有Echarts基础&#xff0c;理解起来比较费劲&#xff0c;这个…

云服务器带宽如何计算,云服务器怎么选择带宽

原标题&#xff1a;云服务器怎么选择带宽很多企业或站长在购买云服务器时&#xff0c;对带宽不是很了解。他们认为硬件配置高就行&#xff0c;访问速度就会快。其实访问快慢主要是带宽大小来决定&#xff0c;硬件主要是用来运算的&#xff0c;带宽是用来传输数据的。服务器处理…

【JSON系列】JSON核心知识点总结

JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快&#xff0c;更易解析。 JSON是一种轻量级的数据交换格式。 它基于(欧洲计算机协会制定的js规范)的一个子集&#xff0c;采用完全独立于编程语言…

spring aop实践_使用Spring AOP实现活动记录模式

spring aop实践在课堂设计过程中&#xff0c;我们应就每个班级的职责分配做出决定。 如果我们选择的不错&#xff0c;系统将更易于理解&#xff0c;维护和扩展。 我们几乎所有的项目都有一个持久层&#xff0c;即关系数据库&#xff0c;文档存储或仅XML文件。 通常&#xff0c;…

iOS:Cocoa编码规范 -[译]Coding Guidelines for Cocoa

转载:http://blog.csdn.net/houseq/article/details/27369043 原文地址&#xff1a;https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/FrameworkImpl.html Cocoa编码规范 --前言 用公共API开发一个Cocoa框架&#xff0c;插件…

部署promethues采集kubelet数据报错:server returned HTTP status 403 Forbidden

背景 笔者尝试部署手动部署promethues去采集kubelet的node节点数据信息时报错 笔者的promethus的配置文件和promthues的clusterrole配置如下所示&#xff1a; apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:name: prometheus rules: - apiGroups: […