
JVM学习与性能调优
文章平均质量分 84
JVM学习与性能调优
魔道不误砍柴功
我亦无它,唯手熟尔!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《一次搞懂JVM调优:性能分析与实战指南》
👂 倾听(监控)🔍 观察(分析)💉 治疗(调优)🏥 复查(验证)记住,没有放之四海而皆准的最优配置,只有最适合你业务场景的配置!如果有任何问题,欢迎在评论区留言讨论哦~ 😊🎛️✨。原创 2025-05-06 23:09:15 · 1110 阅读 · 0 评论 -
JVM调优黑科技:G1垃圾回收器参数配置手册(附线上案例)
G1(Garbage-First)垃圾回收器是JDK 9及以后版本的默认垃圾回收器,它结合了吞吐量和低延迟的优势。本文将深入浅出地讲解G1的核心原理、关键参数配置技巧,并通过真实线上案例展示如何通过参数调优解决实际问题。无论你是JVM新手还是老手,都能从中获得实用的调优经验。G1垃圾回收器通过其独特的分区域设计和可预测停顿模型,为现代Java应用提供了优秀的性能表现。显著减少GC停顿时间提高系统整体吞吐量避免内存碎片问题基于实际应用特点结合监控数据进行有针对性的调优。原创 2025-04-06 17:32:41 · 1418 阅读 · 0 评论 -
《JMM:JVM的神秘舞伴》
首先,让我们来揭开JMM的神秘面纱。JMM,全称Java内存模型,它并不是一个实际的物理内存,也不是你电脑里那个装着各种文件的硬盘。实际上,JMM是一个抽象的概念,它定义了Java程序中变量的访问规则,以及这些变量如何与计算机内存交互。简单来说,JMM就像是程序员和计算机内存之间的“翻译官”,确保我们写的代码能够在不同的硬件和操作系统上以相同的方式运行。好了,关于JMM的介绍就到这里。希望这篇文章能让你对JMM有一个全新的认识,并且能在你以后的编程生涯中,成为你和计算机内存之间那个不可或缺的“翻译官”。原创 2024-11-11 22:25:11 · 579 阅读 · 0 评论 -
JVM 内存划分的奥秘:为何要这样划分内存?
JVM 内存的划分不仅是为了优化性能,还包含了对安全性、兼容性、线程独立性等多方面的考量。通过了解堆、栈、方法区等内存区域的划分逻辑,我们可以更高效地管理内存,避免内存泄漏、线程安全等问题。掌握 JVM 的内存划分不仅有助于提升 Java 的应用开发水平,也能让我们更清楚地理解 Java 内存管理的精妙之处。原创 2024-11-11 22:24:06 · 1096 阅读 · 0 评论 -
Java 虚拟机是什么?——探秘 JVM 的核心机制!
JVM,全称 Java Virtual Machine,即 Java 虚拟机,是一种能够执行 Java 字节码的虚拟计算机。Java 有一句经典的口号:“Write Once, Run Anywhere”(一次编写,到处运行),而 JVM 正是实现这一特性的核心。简单来说,JVM 是一个运行 Java 程序的引擎。它接收编译后的 Java 字节码,将其解释并转换为底层机器能够执行的指令,从而在不同的操作系统和硬件上无缝运行。原创 2024-10-28 22:36:19 · 1416 阅读 · 8 评论 -
GC 分代收集算法 VS 分区收集算法
问题:今天来看看GC 分代收集算法 VS 分区收集算法分代收集算法当前主流 VM 垃圾收集都采用”分代收集”(Generational Collection)算法, 这种算法会根据 对象存活周期的不同将内存划分为几块, 如 JVM 中的 新生代、老年代、永久代,这样就可以根据 各年代特点分别采用最适当的 GC 算法在新生代-复制算法:每次垃圾收集都能发现大批对象已死, 只有少量存...原创 2019-09-22 01:06:27 · 1296 阅读 · 0 评论 -
GC垃圾回收机制
问题:防止OOM就必须做GC回收这步骤,下面我们就一起来看一些常见的GC是怎么回收的吧一、垃圾回收与算法2.4.1. 如何确定什么是垃圾?2.4.1.1. 引用计数法:在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单 的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关 联的引用,即他们的引用计数都不为...原创 2019-09-22 00:47:27 · 386 阅读 · 0 评论 -
GC 垃圾收集器
问题:今天来看看GC 垃圾收集器有哪些,以及原理是什么?开始我们的表演吧:目录大纲截图Java 堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法; 年老代主要使用标记-整理垃圾回收算法,因此 java 虚拟中针对新生代和年老代分别提供了多种不 同的垃圾收集器,JDK1.6 中 Sun HotSpot 虚拟机的垃圾收集器如下:2.7.1. Se...原创 2019-09-22 01:30:06 · 219 阅读 · 0 评论 -
JVM 学习(1)—JVM 与 JMM 内存模型简单理解
JMM(Java 内存模型 Java Memory Model,简称 JMM)是一种抽象的概念并不是真实存在,它是描述的一组约定或者说是规范,通过这组规范定义程序中各个变量读写访问方式并且决定一个线程对共享变量的读写何时让另一个线程可见,关键技术点就是围绕多线程的原子性可见性和有序性三个特性展开,下面会说到什么是原子性可见性和有序性。由于 JVM 运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),用于存储线程私有的数据,而。原创 2023-02-23 21:01:21 · 1683 阅读 · 0 评论 -
什么是三色标记算法
为什么会出现三色标记算法?对于绝大部分垃圾收集器都是基于可达性分析算法来判断对象的存活状态;然后可达性分析算法理论上是一种基于一致性的快照中才能够进行分析,这就意味着需要进行STW(停顿用户线程进行垃圾收集标记)。若堆中存储的对象很多,那么对于GC roots图结构越复杂,要标记更多的节点需要停顿更长时间,对于用户来说肯定是不友好,那么可通过削弱STW消耗的时间的话,那么收益也是系统级别的。三色标记算法是一种并发的可达性分析算法,可以削弱STW所耗费的时间。什么是三色标记算法?三色标记算法可以说是标原创 2021-09-02 22:41:03 · 4339 阅读 · 8 评论 -
JDBC如何打破双亲委派机制?
1、直接编写测试代码,重点关注这个代码是怎么执行的DriverManager.getConnection()//这行代码注释也是可以的//Driver driver = Class.forName("com.mysql.jdbc.Driver");connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/gwmdb?useSSL=false&useUnicode=true&characte原创 2021-07-06 17:42:04 · 803 阅读 · 0 评论 -
java 虚拟机常用命令
提示: 使用-XX:+PrintFlagsFinal 打印所有以-XX格式的参数,总共差不多700多个,:=表示是被修改过的意思1.java -X 查看 -X的参数有哪些-X 格式的参数-Xint 设置只用执行解释器执行-Xmixed 设置混合执行器(解释器+JIT编译器(热代码缓存))-Xms10m 设置最小堆内存的size-Xmx10m 设置最大堆内存的size-Xss10m 设置栈内存的size .原创 2021-03-24 02:39:37 · 585 阅读 · 0 评论 -
i++,++i 的底层实现原理
Demo 如下所示 public static void main(String[] args) { System.out.println(Demo.method1(10)); System.out.println(Demo.method2(10)); } public static int method1(int a) { return a++; } public static int method2(int b)原创 2021-03-22 22:59:14 · 491 阅读 · 0 评论 -
Java 性能调优命令
以下命令都有 -options 来帮助查看有哪些参数设置jps 命令查看HotSpot当前运行有哪些虚拟进程号jstat (JVM Statistis Montiroring Tool) 命令监视虚拟机各种运行状态信息的命令工具, 可以显示本地和远程的类装载,内存,垃圾收集,JIT编译等运行时数据类相关信息监控通过jps查询到进程端口之后, 使用jstat命令执行-class 表示输出类相关的信息(类装载卸载时间)-t 表示程序启动耗费了多少时间ms-h3 表示每隔3s次打印一次.原创 2021-03-22 13:39:32 · 438 阅读 · 1 评论 -
使用 String 和 StringBuffer 拼接效率谁更高?
代码演示这里我们设定循环10w次来拼接一个字符串, 比较代码如下 public static void main(String[] argss) { long l = System.currentTimeMillis(); show2(); System.out.println(System.currentTimeMillis()-l); } public static void show1() { String原创 2021-03-16 18:06:21 · 725 阅读 · 0 评论 -
JVM内存模型、GC垃圾回收等
问题:今天让我们一起进入JVM比价深层一点的领域——JVM内存模型(包括GC回收)一、jvm基本介绍1、JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接 的交互,下面是它的基本结构图2、运行过程:① Java 源文件—->编译器—->字...原创 2019-09-21 22:39:49 · 396 阅读 · 0 评论