JVM/GC
文章平均质量分 72
JVM/GC
當幸福来敲门
抬头看天,不忘低头看路。
展开
-
JVM内存调优原则及几种JVM内存调优方法
JVM内存调优原则及几种JVM内存调优方法 1、堆大小设置。 2、回收器选择。 1、在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。 2、对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,过多的GC和Full GC是会占用很多的系统资源(主要是CPU),影响系统的吞.转载 2021-03-13 16:31:51 · 1280 阅读 · 0 评论 -
JVM 常见异常及内存诊断
栈帧过多导致栈内存溢出 栈帧过大导致栈内存溢出 堆内存溢出 堆内存诊断: jps(查看java进程情况)| jmap -heap (查看瞬间堆内存情况) | jconsole (图形化持续查看堆内存情况及jvm其他信息) 方法区内存溢出 ...原创 2021-03-13 16:24:07 · 231 阅读 · 0 评论 -
JVM架构解析
本文阐述了JVM的构成和组件,配图清晰易懂,是学习Java开发者的入门必读文章。 每个Java开发人员都知道字节码经由JRE(Java运行时环境)执行。但他们或许不知道JRE其实是由Java虚拟机(JVM)实现,JVM分析字节码,解释并执行它。作为开发人员,了解JVM的架构是非常重要的,因为它使我们能够编写出更高效的代码。本文中,我们将深入了解Java中的JVM架构和JVM的各个组件。 JVM 虚拟机是物理机的软件实现。Java的设计理念是WORA(Write Once Run Anywhere,一次原创 2021-03-12 15:48:43 · 635 阅读 · 2 评论 -
Object的finalize()方法的作用是否与C++的析构函数作用相同
Object的finalize()方法的作用是否与C++的析构函数作用相同 public class Finalization { private static Finalization finalization; /**finalize在gc回收中有不确定性,所以不推荐用finalize进行回收*/ @Override protected void finalize(){ System.out.println("finalized"); ...转载 2021-03-06 21:22:57 · 266 阅读 · 0 评论 -
Java垃圾回收之老年代垃圾收集器
1、Serial Old 收集器(-XX: +UseSerialOldGC, 标记-整理算法) 1.1 单线程收集,进行垃圾收集时,必须暂停所有工作线程 1.2 简单高效,Client模式下默认的老年代收集器 2、Parallel Od收集器(-XX: +UseParallelOldGC ,标记-整理) 2.1 JDK6 之后才有这个收集器,多线程,吞吐量优先,如果注重CPU资源和吞吐量的场合,可以使用这个组合 Parallel Scavenge + Parallel Old..原创 2021-03-06 20:44:38 · 398 阅读 · 0 评论 -
Java垃圾回收之新生代垃圾收集器
分代收集算法 Stop-the-World(停止一切) JVM由于要执行GC而停止了应用程序的执行 任何一种GC算法中都会发生 多数GC优化通过减少Stop-the-world发生时间来提高程序性能 Safepoint (安全点) 分析过程中对象引用关系不会发生变化的点 产生Safepoint的地方: 方法调用; 循环跳转; 异常跳转等 安全点数量得适中(太少会让gc等待太长时间,太多会增加程序运行负荷) 常见垃圾收集器 JVM的运行模式 Server:启动较慢, Clie...原创 2021-03-06 20:27:44 · 135 阅读 · 0 评论 -
JVM年轻代,老年代,永久代详解
秉承不重复造轮子的原则,↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解原创 2021-03-05 14:35:09 · 161 阅读 · 1 评论 -
典型的垃圾收集算法
上一编:《垃圾回收之标记算法》,用以确认那些垃圾判定为可以回收。 在确定了哪些垃圾可以被回收后,垃圾收集器要做的事情就是开始进行垃圾回收,但是这里面涉及到一个问题是:如何高效地进行垃圾回收。由于Java虚拟机规范并没有对如何实现垃圾收集器做出明确的规定,因此各个厂商的虚拟机可以采用不同的方式来实现垃圾收集器,所以在此只讨论几种常见的垃圾收集算法的核心思想。 1.Mark-Sweep(标记-清除)算法 这是最基础的垃圾回收算法,之所以说它是最基础的是因为它最容易实现,思想也是最简单的。标记-清.原创 2021-03-06 15:38:39 · 105 阅读 · 0 评论 -
垃圾回收之标记算法
前言 作为 Java 开发人员,其实是非常幸福的,因为 JVM 的存在,使得 Java 开发人员不需要像 C 或者 C++开发人员那样需要手动申请内存、释放内存,这些资源申请、垃圾回收的操作,JVM 底层直接帮助我们全干了。 这为 Java 开发人员省去了不少事情,但同样也使得像笔者这样的菜鸟,对垃圾回收的概念越来越模糊,甚至压根就不懂什么是垃圾回收。然而现在的面试官越来越坏,逮着程序员的薄弱环节使劲怼,特别喜欢问 JVM 相关知识,尤其是 JVM 调优经验、垃圾回收相关的知识。而作为一名有理想的菜鸟转载 2021-03-06 14:59:22 · 127 阅读 · 0 评论