摘要: 参数描述 -XX:+UseSerialGC Jvm运行在Client模式下的默认值,打开此开关后,使用Serial + Serial Old的收集器组合进行内存回收 -XX:+UseParNewGC 打开此开关后,使用ParNew + Serial Old的收集器进行垃圾回收 -XX:+UseCon 阅读全文
posted @ 2016-11-11 13:30 wade&luffy 阅读(814) 评论(0) 推荐(0) 编辑
摘要: 每一种收集器的日志形式都是由它们自身的实现所决定的,换而言之,每个收集器的日志格式都可以不一样。但虚拟机设计者为了方便用户阅读,将各个收集器的日志都维持一定的共性,例如以下两段典型的GC日志: 33.125:[GC [DefNew: 3324K->152K(3712K),0.0025925 secs 阅读全文
posted @ 2016-11-11 13:29 wade&luffy 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 枚举根节点 从可达性分析中从GC Roots节点找引用链这个操作为例,可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中,现在很多应用仅仅方法区就有数百兆,如果要逐个检查这里面的引用,那么必然会消耗很多时间。另外,可达性分析对执行时间的敏感 阅读全文
posted @ 2016-11-11 13:02 wade&luffy 阅读(2109) 评论(0) 推荐(0) 编辑
摘要: 通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连(用图论的话来说,就是从GC Roots到这个对象不可达)时,则证明此对象是不可用的。 在Java语言中,可作为G 阅读全文
posted @ 2016-11-11 12:51 wade&luffy 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 本文内容的目的有两个:第一,通过代码验证Java虚拟机规范中描述的各个运行时区域存储的内容;第二,在工作中遇到实际的内存溢出异常时,能根据异常的信息快速判断是哪个区域的内存溢出,知道什么样的代码可能会导致这些区域内存溢出,以及出现这些异常后该如何处理。 Java堆溢出 Java堆用于存储对象实例,只 阅读全文
posted @ 2016-11-11 12:32 wade&luffy 阅读(377) 评论(0) 推荐(0) 编辑