JVM内存管理及垃圾回收
来源:互联网 发布:有网络但下载速度为零 编辑:程序博客网 时间:2024/05/22 01:40
JVM内存被分成了3个部分:
年轻代(Young Generation)
年老代(Old Generation)
永久代(Permanent Generation)
年轻代又分成3个部分,一个eden区和两个相同的survior区。刚开始创建的对象都是放置在eden区的。分成这样3个部分,主要是为了生命周期短的对象尽量留在年轻带。当eden区申请不到空间的时候,进行minorGC,把存活的对象拷贝到survior。年老代主要存放生命周期比较长的对象,比如缓存对象。具体jvm内存回收过程描述如下(可以结合上图):
1、对象在Eden区完成内存分配
2、当Eden区满了,再创建对象,会因为申请不到空间,触发minorGC,进行young(eden+1survivor)区的垃圾回收
3、minorGC时,Eden不能被回收的对象被放入到空的survivor(Eden肯定会被清空),另一个survivor里不能被GC回收的对象也会被放入这个survivor,始终保证一个survivor是空的
4、当做第3步的时候,如果发现survivor满了,则这些对象被copy到old区,或者survivor并没有满,但是有些对象已经足够Old,也被放入Old区 XX:MaxTenuringThreshold
5、当Old区被放满的之后,进行fullGC
在知道垃圾回收机制以后,大家可以在对jvm中堆的各个参数进行优化设置,来提高性能。
0 0
- JVM内存管理及垃圾回收机制
- JVM内存管理及垃圾回收
- JVM 内存管理及垃圾回收
- JVM 内存管理及垃圾回收
- JVM内存管理及垃圾回收
- Java JVM内存管理及垃圾回收
- JVM内存管理及垃圾回收
- JVM内存管理及垃圾回收
- JVM内存管理及垃圾回收
- JVM内存管理及垃圾回收【转】
- JVM内存管理及垃圾回收
- JVM内存管理及垃圾回收
- JVM内存管理及垃圾回收
- JVM - 内存及垃圾回收
- Java之美之JVM内存管理及垃圾回收
- JVM学习笔记-内存管理及垃圾回收
- JVM的内存管理和垃圾回收
- Sun JVM内存管理和垃圾回收
- 简单凸包
- provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接
- POJ 2778 DNA Sequence
- 【mysql】mysql 常用建表语句 .
- 安装VS2010 SP1时出现回滚 问题解决
- JVM内存管理及垃圾回收
- Android 通过HttpClient访问服务器获取XML
- 马林强调位置保护
- 4G时代,软件开发工程师的又一春
- __bridge,__bridge_retained和__bridge_transfer的意思,区别与使用
- Win7访问XP或者2003共享,提示密码错误的解决办法
- 如何快速搭建一个网站
- ceph集群在线添加||删除+mon&&osd
- GridView控件详解