jvm
文章平均质量分 90
wrr-cat
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
嘿,同学,你要的 Java 内存模型 (JMM) 来了
我们在开发时会经常遇到这样的场景,我们开发完成的代码在我们自己的运行环境上表现良好,但是当我们把它放在其它硬件平台上时,就会出现各种各样的错误,这是因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。为了解决这个问题,Java 内存模型(JMM)的概念就被提出来了,它的出现可以屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果,实现平台的一致性,使得 Java 程序能够。原创 2023-04-15 19:14:34 · 275 阅读 · 0 评论 -
jvm查看full gc频率
背景先说一下基本情况,本次是对线上商品服务的JVM优化。商品服务的访问量非常高,单机QPS在3000左右,线上总共部署了15个商品服务节点。JVM堆内存大小是8G,其中给新生代分配了2G,老年代垃圾回收器采用CMS,新生代垃圾回收器是ParNew。查看java进程]#jps24019 user.jar25885 Jps26958 Main目标进程24019监控jvm,每5秒打印一次]# jstat -gc 24019 5000 S0C S1C S0U转载 2021-05-07 15:48:41 · 2906 阅读 · 0 评论 -
深入理解JVM虚拟机5:虚拟机字节码执行引擎
1 概述执行引擎是java虚拟机最核心的组成部件之一。虚拟机的执行引擎由自己实现,所以可以自行定制指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。本节将主要从概念模型的角度来讲解虚拟机的方法调用和字节码执行。2 运行时栈帧结构栈帧(Stack Frame)是用于支持虚拟机方法调用和方法执行的数据结构,它是虚拟机运行时数据区中虚拟机栈(Virtual Ma.原创 2021-03-25 15:02:08 · 167 阅读 · 0 评论 -
finalize()
finalize()是Object中的方法,当垃圾回收器将要回收对象所占内存之前被调用,即当一个对象被虚拟机宣告死亡时会先调用它finalize()方法,让此对象处理它生前的最后事情(这个对象可以趁这个时机挣脱死亡的命运)。要明白这个问题,先看一下虚拟机是如何判断一个对象该死的。判定死亡"GC ROOTS"定义:GC管理的主要区域是Java堆,一般情况下只针对堆进行垃圾回收。方法区、栈和本地方法区不被GC所管理,因而选择这些区域内的对象作为GC roots,被GC roots引用的对象不被GC回收。转载 2021-04-26 15:10:46 · 603 阅读 · 0 评论 -
深入理解JVM虚拟机2:JVM垃圾回收基本原理和算法
JVM GC基本原理与GC算法Java的内存分配与回收全部由JVM垃圾回收进程自动完成。与C语言不同,Java开发者不需要自己编写代码实现垃圾回收。这是Java深受大家欢迎的众多特性之一,能够帮助程序员更好地编写Java程序。下面四篇教程是了解Java 垃圾回收(GC)的基础:垃圾回收简介 圾回收是如何工作的? 垃圾回收的类别这篇教程是系列第一部分。首先会解释基本的术语,比如JDK、JVM、JRE和HotSpotVM。接着会介绍JVM结构和Java 堆内存结构。理解这些基础对于理解后面的垃原创 2021-03-04 15:05:55 · 192 阅读 · 1 评论 -
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
前言所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问题,以便于快速的解决生产故障。先看一张图,这张图能很清晰的说明JVM内存结构布局。JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内原创 2021-03-04 10:14:11 · 210 阅读 · 1 评论 -
JVM优化实战
1 GC相关内存1.1 内存划分1.1.1 堆(Heap)存放new MyClass()的对象,是GC的主要区域,-Xms / -Xmx 分别是堆的初始容量、最大可扩展容量,建议初始值设置为最大值,以免反复扩展或缩减的开销; 新生代(Young Generation):又划分为 Eden(伊甸园,新生区), Survivor#0(幸存区S0), Survivor#1(幸存区S1) 老年代(Tenured Generation) -XX:NewRatio 是“老年代 ..原创 2021-04-08 09:42:04 · 387 阅读 · 0 评论
分享