文档章节

Java gc相关概念

bloodkilory
 bloodkilory
发布于 2016/06/19 20:40
字数 435
阅读 27
收藏 0
  • 标记和清除
    简单理解:从线程的任何堆栈帧中存在的引用,开始遍历其引用树,标记出遍历路径上所有的活对象。遍历完成后,所有没有被标记的都视为垃圾,可以回收。

     
  • 年轻代收集 Minor GC
    在标记阶段发现的所有仍然存活的对象会被挪走:
      |- 从次数足够多的gc中幸存下来的对象进入老年代;
      |- 剩下的年轻代存活对象进入Survivor中空着的空间(from/to)


    当Eden满了就会触发一次Minor GC , 其标记阶段必须遍历整个生存对象图。

     
  • 完全收集 Full GC
    简单来说,当老年代空间不足时,会触发一次full gc,实际情况可能会更复杂一些,根据选用的收集器的不同,有多种情况会触发full gc。

     
  • 安全点
    垃圾收集时会stop the world,但不可能说为了gc说停就停。所以给gc的执行留出特定的位置——安全点。常见的安全点是方法被调用的地方“调用点”,不过也有其他的点,为了执行gc,所有应用线程都必须停在安全点上。

     
  • 溢出分析
    分析方法并确认其中哪个局部变量(的引用类型)只在方法内部使用,以及哪些变量不会传入其他方法或从当前方法返回。这样JVM就可以在当前方法的栈框架内部创建这个对象,而不再使用堆内存。这会显著减少线程的年轻代收集次数,从而提升性能。
     

© 著作权归作者所有

bloodkilory
粉丝 0
博文 2
码字总数 966
作品 0
顺义
架构师
私信 提问
JVM快速调优手册03:内存分配策略

内存分配策略 了解GC其中很重要一点就是了解JVM的内存分配策略:即对象在哪里分配和对象什么时候回收。 Java技术体系中所提倡的自动内存管理可以归结于两个部分:给对象分配内存以及回收分配...

GordonNemo
03/28
0
0
关于 "Unloading class sun.reflect.GeneratedSerial...

谨以此文纪念一次悲剧的经历,并总结从中得到的经验教训。 最近,由于项目需要,要在一个Tomcat上部署多个Web应用。考虑到Tomcat的最大堆大小为128MB,所以我对Tomcat的JVM参数做以下调整,并...

felixlv
2013/05/24
0
0
JVM 发生GC时的事件通知的机制

如果您还在用Java 6的话,请赶紧升级到Java 7吧。 以下以Java 7为基准来讨论。 ============================================================== 在Java 7里有两种办法来监听GC事件。 一种是...

Sub
2013/08/14
0
0
JVM(java 虚拟机)内存设置

一、设置JVM内存设置 1. 设置JVM内存的参数有四个: -Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定; -Xms Java Heap初始值,Serve...

Airship
2015/07/13
0
0
JVM结构 方法区 永久代 元空间

前言 首先明白几个概念:JVM规范和JVM实现,方法区是JVM规范中定义的,永久代是JVM实现(HotSpot)中对于方法区的实现。 Orcale在收到JRockit VM后对JRockit VM和HotSpot的优点做了融合,决定...

Gengry
2017/10/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rsync工具常用选项以及同步的两种方式

rsync -av /etc/passwd /tmp/1.txt #rsync的本机传输写法 rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt #rsync的远程传输rsync格式rsync [OPTION] … SRC ......

林怡丰
今天
3
0
GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238

GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238 (Address already in use) 官方文档虽然有相同的问题,但是对我的问题没起作用…… 后面发现自己手贱...

wenzhizhong
昨天
3
0
REST接口

文章来源 https://zhuanlan.zhihu.com/p/28674721?group_id=886181549958119424 http://www.ruanyifeng.com/blog/2014/05/restful_api.html REST 对请求的约定 REST 用来规范应用如何在 HTTP......

Airship
昨天
6
0
Spring Cloud Config 统一配置中心

Spring Cloud Config 统一配置中心 一、统一配置中心 统一管理配置 通常,我们会使用配置文件来管理应用的配置。如一个 Spring Boot 的应用,可以将配置信息放在 application.yml 文件中,如...

非摩尔根
昨天
6
0
android ------ AAPT2 error: check logs for details解决方法

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录...

切切歆语
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部