JVM总结
来源:互联网 发布:互联网医院 知乎 编辑:程序博客网 时间:2024/05/21 18:48
JVM GC的说法,我也是网上看了很多的说法,总结的。
我们项目运行时,会启动JVM(JAVA虚拟机)
可以看到我们的正式服的都是class文件。
JVM会先一次性分配一块较大的空间。
JVM先运行Class Loader把类都装载到内存区域
内存区域会分为几种类型进行分配:
1:方法区:存放常量、静态变量、构造函数
2:java堆:存放被new出来的对象
3:java栈:存放每次调用方法时,方法内的变量、返回值等
4:程序计数器:存放运行时线程之间需要切换之前的内存地址。
5:本地方法栈:这个我看的不怎么懂,好像说是什么本地方法,你们可以查下,告诉大家是什么。
而GC(垃圾回收机制),回收时间是随机的,看JVM的心情。当然这种看心情的情况是在新生代与老年代存放空间未满的。
先说说对象的生命周期:
1、年轻代:分为(Enden区和两个Survivor区(FROM和TO区))新的对象产生时,存放在年轻代Enden区。
说明:当Enden区被对象填满时,会执行GC(就是会触发垃圾回收机制),把存活下来的对象放到Survivor区
然后看JVM的心情进行多次GC时,依然存活下来的对象会转到年老代
这就好像我springmvc框架里,项目一移动的时候,会产生很多新对象,这些对象先到了Enden区,然后运行了一段时间,发现这些对象还在,就会被移到年老代区
2、年老代:存放N次都没被GC掉的对象,生命周期比较长的。
说明:年老代空间满了之后也会执行GC,称为:Full GC
3、永久代:存放静态变量、类、方法啊这些数据,一般不会去清理永久代的数据。
一般来说,代码敲的不好,会产生很多的年老代。当GC去回收时,发现没有回收的可用的内存空间,会一直循环去回收,导致CPU 100%。
所以我们尽可能的配置好JAVA JVM的参数
1、Xms JVM的初始堆大小
2、Xmx JVM的最大堆大小
当最小堆被占满后,会进行GC,如果GC之后还不能得到足够的内存,就会扩展堆,最大扩展至Xmx设定值。
我们项目运行时,会启动JVM(JAVA虚拟机)
可以看到我们的正式服的都是class文件。
JVM会先一次性分配一块较大的空间。
JVM先运行Class Loader把类都装载到内存区域
内存区域会分为几种类型进行分配:
1:方法区:存放常量、静态变量、构造函数
2:java堆:存放被new出来的对象
3:java栈:存放每次调用方法时,方法内的变量、返回值等
4:程序计数器:存放运行时线程之间需要切换之前的内存地址。
5:本地方法栈:这个我看的不怎么懂,好像说是什么本地方法,你们可以查下,告诉大家是什么。
而GC(垃圾回收机制),回收时间是随机的,看JVM的心情。当然这种看心情的情况是在新生代与老年代存放空间未满的。
先说说对象的生命周期:
1、年轻代:分为(Enden区和两个Survivor区(FROM和TO区))新的对象产生时,存放在年轻代Enden区。
说明:当Enden区被对象填满时,会执行GC(就是会触发垃圾回收机制),把存活下来的对象放到Survivor区
然后看JVM的心情进行多次GC时,依然存活下来的对象会转到年老代
这就好像我springmvc框架里,项目一移动的时候,会产生很多新对象,这些对象先到了Enden区,然后运行了一段时间,发现这些对象还在,就会被移到年老代区
2、年老代:存放N次都没被GC掉的对象,生命周期比较长的。
说明:年老代空间满了之后也会执行GC,称为:Full GC
3、永久代:存放静态变量、类、方法啊这些数据,一般不会去清理永久代的数据。
一般来说,代码敲的不好,会产生很多的年老代。当GC去回收时,发现没有回收的可用的内存空间,会一直循环去回收,导致CPU 100%。
所以我们尽可能的配置好JAVA JVM的参数
1、Xms JVM的初始堆大小
2、Xmx JVM的最大堆大小
当最小堆被占满后,会进行GC,如果GC之后还不能得到足够的内存,就会扩展堆,最大扩展至Xmx设定值。
阅读全文
0 0
- JVM总结--JVM体系结构
- jvm总结
- JVM总结
- JVM总结
- JVM总结
- JVM总结
- jvm总结
- JVM总结
- JVM总结
- JVM总结
- JVM 总结
- JVM 总结
- jvm总结
- JVM总结
- JVM总结
- 总结JVM
- JVM总结
- jvm 总结
- 访问网站显示MySQL"is marked as crashed and should be repaired错误
- 2017-09-25校训练题题解
- js如何判断微信5.0
- HW问题改动_PDS
- leetcode-4-Median of Two Sorted Arrays
- JVM总结
- 6.7-3求链表倒数第n项
- HttpClient4.X 解决POST请求返回重定向问题
- nginx服务器高并发优化思路
- Spark体系概况
- springboot报错(三) webjars被拦截或找不到
- shell脚本基础
- 100. Same Tree (DFS)
- 以sqlserver处理父子级关系查询为列介绍with as、cast()、for xml path()、stuff()的使用