新生代大小对GC的影响

import java.util.Vector;

/** * Created by xxd on 2017/4/2. */public class DumpOOM {    public static void main(String[] args){        Vector v = new Vector();        for (int i=0;i<25;i++){            v.add(new byte[1*1024*1024]);        }    }}
"C:\Program Files\Java\jdk1.8.0_121\bin\java" -Xmx20m -Xms20m -Xmn1m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -Didea.launcher.port=7534 "-Didea.launcher.bin.path=E:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_121\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\rt.jar;F:\idea_workspace\jvmDebug\out\production\jvmDebug;E:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.3\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain NewSizeDemo

[GC (Allocation Failure) [PSYoungGen: 512K->504K(1024K)] 512K->512K(19968K), 0.0007921 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

[GC (Allocation Failure) [PSYoungGen: 1016K->488K(1024K)] 1024K->684K(19968K), 0.0006238 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

Java HotSpot(TM) 64-Bit Server VM warning: NewSize (1536k) is greater than the MaxNewSize (1024k). A new max generation size of 1536k will be used.

Heap

PSYoungGen      total 1024K, used 582K [0x00000000ffe80000, 0x0000000100000000, 0x0000000100000000)

eden space 512K, 18% used [0x00000000ffe80000,0x00000000ffe97bd0,0x00000000fff00000)

from space 512K, 95% used [0x00000000fff80000,0x00000000ffffa020,0x0000000100000000)

to   space 512K, 0% used [0x00000000fff00000,0x00000000fff00000,0x00000000fff80000)

ParOldGen       total 18944K, used 10436K [0x00000000fec00000, 0x00000000ffe80000, 0x00000000ffe80000)

object space 18944K, 55% used [0x00000000fec00000,0x00000000ff6310b0,0x00000000ffe80000)

Metaspace       used 3305K, capacity 4494K, committed 4864K, reserved 1056768K

class space    used 362K, capacity 386K, committed 512K, reserved 1048576K

Process finished with exit code 0

===================================================================================================================================================

-Xmx20m -Xms20m -Xmn7m -XX:SurvivorRatio=2 -XX:+PrintGCDetails

"C:\Program Files\Java\jdk1.8.0_121\bin\java" -Xmx20m -Xms20m -Xmn7m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -Didea.launcher.port=7535 "-Didea.launcher.bin.path=E:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_121\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\rt.jar;F:\idea_workspace\jvmDebug\out\production\jvmDebug;E:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.3\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain NewSizeDemo

[GC (Allocation Failure) [PSYoungGen: 3343K->864K(5632K)] 3343K->1896K(18944K), 0.0025715 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

[GC (Allocation Failure) [PSYoungGen: 4056K->1520K(5632K)] 5088K->2820K(18944K), 0.0010995 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

[GC (Allocation Failure) [PSYoungGen: 4688K->1528K(5632K)] 5988K->2828K(18944K), 0.0006183 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

Heap

PSYoungGen      total 5632K, used 3707K [0x00000000ff900000, 0x0000000100000000, 0x0000000100000000)

eden space 4096K, 53% used [0x00000000ff900000,0x00000000ffb20fa8,0x00000000ffd00000)

from space 1536K, 99% used [0x00000000ffd00000,0x00000000ffe7e040,0x00000000ffe80000)

to   space 1536K, 0% used [0x00000000ffe80000,0x00000000ffe80000,0x0000000100000000)

ParOldGen       total 13312K, used 1300K [0x00000000fec00000, 0x00000000ff900000, 0x00000000ff900000)

object space 13312K, 9% used [0x00000000fec00000,0x00000000fed45020,0x00000000ff900000)

Metaspace       used 3269K, capacity 4494K, committed 4864K, reserved 1056768K

class space    used 360K, capacity 386K, committed 512K, reserved 1048576K

Process finished with exit code 0

===================================================================================================================================================

-Xmx20m -Xms20m -Xmn15m -XX:SurvivorRatio=2 -XX:+PrintGCDetails

"C:\Program Files\Java\jdk1.8.0_121\bin\java" -Xmx20m -Xms20m -Xmn15m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -Didea.launcher.port=7536 "-Didea.launcher.bin.path=E:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_121\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\rt.jar;F:\idea_workspace\jvmDebug\out\production\jvmDebug;E:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.3\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain NewSizeDemo

[GC (Allocation Failure) [PSYoungGen: 7627K->1920K(11776K)] 7627K->1928K(16896K), 0.0014507 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

Heap

PSYoungGen      total 11776K, used 6338K [0x00000000ff100000, 0x0000000100000000, 0x0000000100000000)

eden space 8192K, 53% used [0x00000000ff100000,0x00000000ff550b58,0x00000000ff900000)

from space 3584K, 53% used [0x00000000ff900000,0x00000000ffae0040,0x00000000ffc80000)

to   space 3584K, 0% used [0x00000000ffc80000,0x00000000ffc80000,0x0000000100000000)

ParOldGen       total 5120K, used 8K [0x00000000fec00000, 0x00000000ff100000, 0x00000000ff100000)

object space 5120K, 0% used [0x00000000fec00000,0x00000000fec02000,0x00000000ff100000)

Metaspace       used 3279K, capacity 4494K, committed 4864K, reserved 1056768K

class space    used 361K, capacity 386K, committed 512K, reserved 1048576K

Process finished with exit code 0

===================================================================================================================================================

时间: 2024-07-29 06:33:01

新生代大小对GC的影响的相关文章

Java GC专家系列4:Apache的MaxClients设置及其对Tomcat Full GC的影响

本文是GC专家系列中的第四篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.所以,你应该已经了解了JDK 7中的5种GC类型,以及每种GC对性能的影响. 在第二篇Java垃圾回收的监控中介绍了在真实场景中JVM是如何运行GC,如何监控GC数据以及有哪些工具可用来方便进行GC监控. 在第三篇GC 调优中基于真实案例介绍了可用于GC调优的最佳选项.同时也描述了如何通过降低移动到老年代中对象的数量来缩短Full GC耗时,以及如何设置GC类

JVM实用参数——新生代垃圾回收

JVM实用参数目录 JVM实用参数——新生代垃圾回收 概述 第1部分  新生代垃圾回收介绍 第2部分 参数介绍 参考 第1部分  新生代垃圾回收介绍 本部分,我们将关注堆(heap) 中一个主要区域,新生代(young generation).首先我们会讨论为什么调整新生代的参数会对应用的性能如此重要,接着我们将学习新生代相关的JVM参数. 单纯从JVM的功能考虑,并不需要新生代,完全可以针对整个堆进行操作.新生代存在的唯一理由是优化垃圾回收(GC)的性能.更具体说,把堆划分为新生代和老年代有2

JVM实用参数(五)新生代垃圾回收

JVM实用参数(五)新生代垃圾回收 原文链接  作者: PATRICK PESCHLOW :译者:严亮 本部分,我们将关注堆(heap) 中一个主要区域,新生代(young generation).首先我们会讨论为什么调整新生代的参数会对应用的性能如此重要,接着我们将学习新生代相关的JVM参数. 单纯从JVM的功能考虑,并不需要新生代,完全可以针对整个堆进行操作.新生代存在的唯一理由是优化垃圾回收(GC)的性能.更具体说,把堆划分为新生代和老年代有2个好处:简化了新对象的分配(只在新生代分配内存

通俗易懂理解JVM结构

通俗易懂理解JVM结构 说明:本篇内容是结合网上各位大牛的关于JVM的文章,通过作者的理解,希望以一种比较易懂的方式,让各位朋友们理解JVM到底是怎么一回事儿,其中部分图片和内容引用来自于网络,如有雷同,请见谅~~ 一.JVM内存区域模型是啥样? 这个是JVM大致的内存分布模型,看起来比较直观: 这个是更精细化的JVM内存模型,区别主要是方法区和堆是公共内存区,其他是私有的: 1.方法区: 也称"永久代" ."非堆", 它用于存储虚拟机加载的类信息.常量.静态变量.

Java GC、新生代、老年代

堆内存 Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象.在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ).老年代 ( Old ).新生代 ( Young ) 又被划分为三个区域:Eden.From Survivor.To Survivor.这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收.堆的内存模型大致为: 从图中可以看出: 堆大小 = 新生代 + 老年代.其中,堆的大小可以通过参数 –Xms.-X

JVM学习(4)——全面总结Java的GC算法和回收机制---转载自http://www.cnblogs.com/kubixuesheng/p/5208647.html

俗话说,自己写的代码,6个月后也是别人的代码--复习!复习!复习!涉及到的知识点总结如下: 一些JVM的跟踪参数的设置 Java堆的分配参数 -Xmx 和 –Xms 应该保持一个什么关系,可以让系统的性能尽可能的好呢?是不是虚拟机内存越大越好? Java 7之前和Java 8的堆内存结构 Java栈的分配参数 GC算法思想介绍 –GC ROOT可达性算法 –标记清除 –标记压缩 –复制算法 可触及性含义和在Java中的体现 finalize方法理解 Java的强引用,软引用,弱引用,虚引用 GC

Java Hotspot G1 GC的一些关键技术

G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生.在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 248).在官网中,是这样描述G1的: The Garbage-First (G1) collector is a server-style garbage collector, targeted for

Java GC专家系列2:Java 垃圾回收的监控

这是”成为GC专家系列”文章的第二篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.到目前为止,你应该已经了解了JDK 7中的5种GC类型,以及每种GC对性能的影响. 在本篇中,我将介绍JVM在真实环境中如何运行GC的. 什么是GC监控 GC监控 指的是在运行时跟踪JVM运行GC的过程.例如,通过GC监控,我们能找出: 何时新生代的对象会被移动到老年代,有多少对象被移到了老年代. 何时stop-the-world发生以及持续时间. 通

Java GC 专家系列5:Java应用性能优化的原则

本文是GC专家系列中的第五篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.所以,你应该已经了解了JDK 7中的5种GC类型,以及每种GC对性能的影响. 在第二篇Java垃圾回收的监控中介绍了在真实场景中JVM是如何运行GC,如何监控GC数据以及有哪些工具可用来方便进行GC监控. 在第三篇GC 调优中基于真实案例介绍了可用于GC调优的最佳选项.同时也描述了如何通过降低移动到老年代中对象的数量来缩短Full GC耗时,以及如何设置GC类