• JVM 内存区域大小参数设置


    JVM内存包括区域

    Heap(堆区)
      New Generation(新生代)
      Eden 伊甸园
      Survivor From
      Survivor To
      Old Generation(老年代)
    方法区
      Permanent Generation(持久代)
      Stack(栈区)
      Metaspace(元空间)
      Direct ByteBuffer(堆外内存)
    通过JVM启动参数来配置以上内存空间
      Heap(堆)内存大小设置
      -Xms512m 设置JVM堆初始内存为512M
      -Xmx1g 设置JVM堆最大可用内存为1G

    New Generation(新生代)内存大小设置
      -Xmn256m 设置JVM的新生代内存大小(-Xmn 是将NewSize与MaxNewSize设为一致。256m),同下面两个参数
      -XX:NewSize=256m
      -XX:MaxNewSize=256m

    通过新生代和老年代内存的比值来设置新生代大小
      -XX:NewRatio=3
      设置新生代(包括Eden和两个Survivor区)与老年代的比值。设置为3,则新生代与老年代所占比值为1:3,新生代占整个堆栈的1/4

    Survivor内存大小设置
      -XX:SurvivorRatio=8
      设置为8,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个新生代的1/10

    Eden内存大小设置
    新生代减去2*Survivor的内存大小就是Eden的大小

    Old Generation(老年的)的内存大小设置
      堆内存减去新生代内存
      如上面设置的参数举例如下:
      老年代初始内存为:512M-256M=256M
      老年代最大内存为:1G-256M=768M

    Stack(栈)内存大小设置
      -Xss1m
      每个线程都会产生一个栈。在相同物理内存下,减小这个值能生成更多的线程。如果这个值太小会影响方法调用的深度

    Permanent Generation(持久代)内存大小设置
      方法区内存分配(JDK8以前的版本使用,JDK8以后没有持久代了,使用的MetaSpace)
      -XX: PermSize=128m 设置持久代初始内存大小128M
      -XX:MaxPermSize=512m 设置持久代最大内存大小512M


    Direct ByteBuffer(直接内存)内存大小设置
      -XX:MaxDirectMemorySize
      当Direct ByteBuffer分配的堆外内存到达指定大小后,即触发Full GC。该值是有上限的,默认是64M,最大为sun.misc.VM.maxDirectMemory()。
      在程序中可以获得-XX:MaxDirectMemorySize的设置的值

    设置新生代代对象进入老年代的年龄
      -XX:MaxTenuringThreshold=15

      设置垃圾最大年龄。如果设置为0的话,则新生代对象不经过Survivor区,直接进入老年代。

      对于老年代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则新生代对象会在Survivor区进行多次复制,这样可以增加对象在新生代的存活时间,增加在新生代即被回收的概论
      最大值为15岁,因为对象头中用了4位进行存储垃圾年龄 【1111(二进制)=15(十进制)】

    不常用的参数
      -XX:MaxHeapFreeRatio=70
      GC后java堆中空闲量占的最大比例,大于该值,则堆内存会减少

      -XX:MinHeapFreeRatio=40
      GC后java堆中空闲量占的最小比例,小于该值,则堆内存会增加

      -XX:PretenureSizeThreshold=1024
      (单位字节)对象大小大于1024字节的直接在老年代分配对象

      -XX:TLABWasteTargetPercent =1
      TLAB占eden区的百分比 默认1%

  • 相关阅读:
    在线整数序列百科全书
    非常完整的线性DP及记忆化搜索讲义
    洛谷P2858 奶牛零食 题解 区间DP入门题
    HDU3394 Railway 题解(边双连通分量)
    POJ1144 Network 题解 点双连通分量(求割点数量)
    LibreOJ6279. 数列分块入门 3 题解
    LibreOJ 6278. 数列分块入门 2 题解
    LibreOJ 6277. 数列分块入门 1 题解
    洛谷P1020 导弹拦截 题解 LIS扩展题 Dilworth定理
    CF1272E. Nearest Opposite Parity 题解 广度优先搜索
  • 原文地址:https://www.cnblogs.com/Zfc-Cjk/p/11587827.html
Copyright © 2020-2023  润新知