![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
错觉_
这个作者很懒,什么都没留下…
展开
-
JVM——思维导图
原创 2019-11-05 14:24:17 · 106 阅读 · 0 评论 -
JVM(4)——垃圾回收算法
三垃圾回收算法1哪些变量引用的对象是不能回收的? JVM中使用了一种可达性分析算法来判定哪些对象是可以被回收的,哪些对象是不可以被回收的。 这个算法的意思,就是说对每个对象,都分析一下有谁在引用他,然后一层一层往上去判断,看是否有一个GC Roots。2哪些可以作为GC Roots的对象虚拟机(栈帧中的本地变量表)中引用的对象方法区中类静态属性引用的对象方法区中常量引用的对象...原创 2019-11-05 11:54:54 · 139 阅读 · 0 评论 -
模拟出JVM内存溢出的场景
1.模拟出JVM Metaspace内存溢出的场景体验一下Metaspace内存溢出根本原因:1.就是Metaspace内存设置太早 2.就是代码里面有大量生成了动态类。一旦Metaspace区域满了,就会触发Full GC连带着回收Metaspace中的类,但是此时大量的类是不能被回收的。不能放下任何一个类,此时必然会触发Metaspace区域的内存溢出,导致JVM也是崩溃掉,无法继续运行了...原创 2019-11-03 01:50:45 · 344 阅读 · 0 评论 -
JVM(7)——OOM内存溢出
1.什么是内存溢出?在哪些区域会发生内存溢出内存溢出指程序申请内存时,没有足够的内存供申请者使用第一块Metaspace区域里可能发生OOM第二块可能发生OOM的区域,就是每个线程的虚拟机栈内存。第三块可能发生内存溢出的区域,就是堆内存空间!2.Metaspace区域是如何触发内存溢出的?如下两个参数就是用来设置Metaspace区域大小的:-XX:MetaspaceSize=512...原创 2019-11-03 01:06:48 · 287 阅读 · 0 评论 -
JVM(8)——GC的影响(总结)
1.基于JVM运行的系统最怕什么?基于JVM运行的系统最害怕的问题:**系统卡顿问题!**就是每次一旦年轻代塞满之后,在进行垃圾回收的时候,这个期间都必须停止系统程序的运行!2.年轻代gc到底多久一次对系统影响不大?通常来说是不大的,假如说你的系统运行着,然后每隔几分钟或者几十分钟执行一次新生代gc,系统卡顿几十毫秒,就这期间的请求会卡顿几十毫秒,几乎用户都是无感知的,所以新生代gc一般基本...原创 2019-11-02 22:06:07 · 5178 阅读 · 0 评论 -
使用MAT分析内存快照
1.准备一段示范用的代码 public static void main(String[] args) throws InterruptedException { List<Data> list=new ArrayList<>(); for (int i = 0; i < 10000; i++) { li...原创 2019-11-02 21:30:09 · 829 阅读 · 0 评论 -
JVM生产调优实战——项目实战设置自己的项目jvm大小?
如何设置自己的项目jvm大小?假设每天100万个支付订单,那么一般用户交易行为都会发生在每天的高峰期,比如中午或者晚上。1.每秒多少笔交易?平均每秒多少笔交易:100w/(24*60*60)约等于12,就是平均每秒12笔交易。按照28比例,高峰期为中午12-13点,下午7-8点左右平均每秒多少笔交易:100w/(2*60*60)约等于12,就是平均每秒100多笔交易。假设我们的支付系统...原创 2019-11-01 15:12:23 · 733 阅读 · 0 评论 -
JVM——分代模型(2)
13.JVM分代模型:年轻代和老年代大部分对象都是存活周期极短的,少数对象是长期存活的年轻代:创建和使用完之后立马就要回收的对象放在里面老年代:创建之后需要一直长期存在的对象放在里面14.什么是永久代?JVM里的永久代其实就是我们之前说的方法区,1.8叫元空间。15.方法区内会不会进行垃圾回收方法区里的类会被回收。前提有三个条件:首先该类的所有实例对象都已经从Java堆内存里被回...原创 2019-11-01 15:08:32 · 194 阅读 · 0 评论 -
JVM(3)——内存相关的核心参数
22.JVM内存相关的几个核心参数图解[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jYnS8gBR-1572592012826)(/Users/laiyanxin/Library/Application Support/typora-user-images/image-20191027223359622.png)]-Xms:Java堆内存的大小-Xmx:J...原创 2019-11-01 15:07:19 · 392 阅读 · 0 评论 -
JVM入门(1)
文章目录1.JVM是什么2.JVM跟我们平时运行在机器上的系统之间是什么关系3.类加载器的概念4.字节码执行引擎的概念5.JVM在什么情况下会加载一个类?6.类加载的过程6.1**验证阶段**6.2**准备阶段**6.3**解析阶段**6.4核心阶段:初始化7.类加载器和双亲委派机制7.1类加载器7.2双亲委派机制8.如何对“.class”文件处理保证不被人拿到以后反编译获取公司源代码?9.**什...原创 2019-11-01 15:05:56 · 143 阅读 · 0 评论 -
JVM(5)——垃圾回收器
四 垃圾回收器1JVM的年轻代垃圾回收器ParNew是如何工作的?最常用的新生代垃圾回收器:ParNew新生代的ParNew垃圾回收器主打的就是多线程垃圾回收机制,另外一种Serial垃圾回收器主打的是单线程垃圾回收,他们俩都是回收新生代的,唯一的区别就是单线程和多线程的区别,但是垃圾回收算法是完全一样的。ParNew垃圾回收器如果一旦在合适的时机执行Minor GC的时候,就会把系统程序...原创 2019-11-01 15:04:30 · 121 阅读 · 0 评论 -
JVM(6)—— G1垃圾回收器
1. G1垃圾回收器的工作原理ParNew + CMS的组合,无论是新生代垃圾回收,还是老年代垃圾回收,都会或多或少产生“Stop the World”现象,对系统的运行是有一定影响的。 G1可以做到让你来设定垃圾回收对系统的影响,他自己通过把Java堆内存拆分为多个大小相等的Region,以及追踪每个Region中可以回收的对象大小和预估时间,最后在垃圾回收的时候,尽量把垃圾回收对系统造成的影...原创 2019-10-30 17:56:22 · 224 阅读 · 0 评论 -
JVM GC空间担保机制原理流程图
原创 2019-10-29 14:11:12 · 846 阅读 · 1 评论