文章 2023-05-25 来自:开发者社区

【Java虚拟机】JVM调优和分析案例综合实战

1.什么是JVM性能优化jvm性能优化涉及到两个很重要的概念:吞吐量和响应时间。jvm调优主要是针对他们进行调整优化,达到一个理想的目标,根据业务确定目标是吞吐量优先还是响应时间优先。吞吐量:用户代码执行时间/(用户代码执行时间+GC执行时间)。响应时间:整个接口的响应时间(用户代码执行时间+GC执行时间),STW时间越短,响应时间越短。调优方法论监控JVM性能对JVM的运行情况进行监控,以了解....

【Java虚拟机】JVM调优和分析案例综合实战
文章 2023-05-05 来自:开发者社区

一文深度讲解JVM 内存分析工具 MAT及实践(建议收藏)

1. 前言熟练掌握 MAT 是 Java 高手的必备能力,但实践时大家往往需面对众多功能,眼花缭乱不知如何下手,小编也没有找到一篇完善的教学素材,所以整理本文帮大家系统掌握 MAT 分析工具。本文详细讲解 MAT 众多内存分析工具功能,这些功能组合使用异常强大,熟练使用几乎可以解决所有的堆内存离线分析的问题。我们将功能划分为4类:内存分布详情、对象间依赖、对象状态详情、按条件检索。每大类有多个功....

一文深度讲解JVM 内存分析工具 MAT及实践(建议收藏)
文章 2023-04-27 来自:开发者社区

JVM学习笔记:逃逸分析的优化手段(猜想随笔)

有这样一个问题:对象是在堆中被分配的吗?我想说至少目前是这样的。现在版本的JVM本身就已经默认开启了逃逸分析来优化我们的代码,这种优化的思想有一种错觉是对象在栈上分配了,但其实并不是。实际上对象还是在堆中被分配的,优化的内容只是针对那些未发生逃逸的对象,将对象通过标量替换的手段进行优化了,也就是说将未发生逃逸的对象拆分成了基础数据类型和方法,在栈帧使用栈帧即可管理,方法结束后栈帧出栈,“对象”被....

文章 2023-04-11 来自:开发者社区

JVM:并发的可达性分析

当前主流编程语言的垃圾收集器基本上都是依靠可达性分析算法来判定对象是否存活的,可达性分析算法理论上要求全过程都基于一个能保障一致性的快照中才能够进行分析,这意味着必须全程冻结用户线程的运行。在根节点枚举这个步骤中,由于 GC Roots 相比起整个 Java 堆中全部的对象毕竟还算是极少数,且在各种优化技巧(如 OopMap)的加持下,它带来的停顿已经是非常短暂且相对固定(不随堆容量而增长) 的....

JVM:并发的可达性分析
文章 2023-02-25 来自:开发者社区

分析JDK、JRE、JVM、JIT 四者的关系与在代码运行时扮演的角色

[1] 四者的简要介绍  · JDK (Java Development Kit)是针对Java开发人员的产品,它包括了Java运行环境JRE、Java工具和Java基础类库;  · JRE (Java Runtime Environment)是运行Java程序所必须的环境的集合,它包含JVM及Java核心类库。  · JVM (Java Virtual Machine)Java实现跨平台的最核....

分析JDK、JRE、JVM、JIT 四者的关系与在代码运行时扮演的角色
文章 2023-02-20 来自:开发者社区

JVM 内存分析神器 MAT: Shallow Heap Vs Retained Heap 你理解的对吗?

有没有想过 Shallow 和 Retained heap 之间的区别?Eclipse MAT(内存分析器工具)是分析 JVM 堆 Dump 文件的强大工具。当尝试分析内存相关的问题时,它非常方便。在 Eclipse MAT 内存分析的报告中会显示对象两种类型的 Heap 信息:Shallow HeapRetained Heap在本文中,我们主要讨论它们之间的区别,并探讨它们的计算方式。通过示例....

JVM 内存分析神器 MAT: Shallow Heap Vs Retained Heap 你理解的对吗?
文章 2023-02-09 来自:开发者社区

JVM内存分析-清晰明了非常容易理解

学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?  由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:如上图所示,首先Java源文件(.java后缀....

JVM内存分析-清晰明了非常容易理解
文章 2023-02-02 来自:开发者社区

监控指标解读和JVM 分析&调优

1、中间件指标 当前正在运行的线程数不能超过设定的最大值。一般情况下系统性能较好的情况下,线 程数最小值设置 50 和最大值设置 200 比较合适。 当前运行的 JDBC 连接数不能超过设定的最大值。一般情况下系统性能较好的情况下,JDBC 最小值设置 50 和最大值设置 200 比较合适。 GC频率不能频繁,特别是 FULL GC 更不能频繁,一般情况下系统性能较好的情况下,JVM 最小....

监控指标解读和JVM 分析&调优
文章 2023-01-16 来自:开发者社区

深度剖析 | 【JVM深层系列】[HotSpotVM研究系列] JVM调优的"标准参数"的各种陷阱和坑点分析(攻克盲点及混淆点)「 1 」

【易错问题】Major GC和Full GC的区别是什么?触发条件呢?相信大多数人的理解是Major GC只针对老年代,Full GC会先触发一次Minor GC,不知对否?我参考了R大的分析和介绍,总结了一下相关的说明和分析结论。在基于HotSpotVM的基础角度针对HotSpot VM的实现,它里面的GC其实准确分类只有两大种:Partial GC(部分回收模式)Partial GC代表着并....

文章 2023-01-16 来自:开发者社区

【JVM故障问题排查心得】「内存诊断系列」Docker容器经常被kill掉,k8s中该节点的pod也被驱赶,怎么分析?

背景介绍最近的docker容器经常被kill掉,k8s中该节点的pod也被驱赶。我有一个在主机中运行的Docker容器(也有在同一主机中运行的其他容器)。该Docker容器中的应用程序将会计算数据和流式处理,这可能会消耗大量内存。该容器会不时退出。我怀疑这是由于内存不足,但不是很确定。我需要找到根本原因的方法。那么有什么方法可以知道这个集装箱的死亡发生了什么?容器层级判断检测提到docker l....

【JVM故障问题排查心得】「内存诊断系列」Docker容器经常被kill掉,k8s中该节点的pod也被驱赶,怎么分析?

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注