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%

JVM 内存区域大小参数设置的更多相关文章

  1. JVM内存结构、参数调优和内存泄露分析

    1. JVM内存区域和参数配置 1.1 JVM内存结构 Java堆(Heap) Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建.此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都 ...

  2. JVM内存区域参数配置

    转自:https://www.jianshu.com/p/5946c0a414b5 需要提前了解的知识点: JVM内存模型 JVM垃圾回收算法 下图是JVM内存区域划分的逻辑图   JVM内存区域逻辑 ...

  3. JVM基础知识(1)-JVM内存区域与内存溢出

    JVM基础知识(1)-JVM内存区域与内存溢出 0. 目录 什么是JVM 运行时数据区域 HotSpot虚拟机对象探秘 OutOfMemoryError异常 1. 什么是JVM 1.1. 什么是JVM ...

  4. JVM内存区域模型

    一:Java技术体系模块图 二:JVM内存区域模型 1.方法区 也称"永久代” .“非堆” ,"perm",  它用于存储虚拟机加载的类信息.常量.静态变量.是各个线程共 ...

  5. JVM 内存区域 (运行时数据区域)

    JVM 内存区域 (运行时数据区域) 链接:https://www.jianshu.com/p/ec479baf4d06 运行时数据区域 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内 ...

  6. 深入理解JVM内存区域与内存分配

    前言:这是一篇关于JVM内存区域的文章,由网上一些有关这方面的文章和<深入理解Java虚拟机>整理而来,所以会有些类同的地方,也不能保证我自己写的比其他网上的和书本上的要好,也不可能会这样 ...

  7. 深入理解JVM之JVM内存区域与内存分配

    深入理解JVM之JVM内存区域与内存分配 在学习jvm的内存分配的时候,看到的这篇博客,该博客对jvm的内存分配总结的很好,同时也利用jvm的内存模型解释了java程序中有关参数传递的问题. 博客出处 ...

  8. 谈谈JVM内存区域的划分

    我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等 ...

  9. 深入理解java:1.3.1 JVM内存区域的划分(运行时数据区)

    学习Java GC机制,可以帮助我们在日常工作中 排查各种内存溢出或泄露问题,解决性能瓶颈,达到更高的并发量,写出更高效的程序. 我们将从4个方面学习Java GC机制, 1,内存是如何分配的: 2, ...

随机推荐

  1. ajax方法请求成功后,没有执行success的方法

    $.ajax( { type: "POST", url: "AddSupplier.aspx", dataType:"text", data ...

  2. 如何添加JWT生成的token在请求头中

    前言 在我们使用JWT来做用户的验证时,我们登陆生成对应的token,并加入到请求的参数中发送到后台提供相关的权限校验.这个时候我们需要使用到传递请求头参数传递的问题,下面是两种方式. 1.ajax提 ...

  3. 详解python函数的参数

    详解python函数的参数 一.参数的定义 1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: ...

  4. mysql datetime timestamp区别

    timestamp 支持数据库级UTC 时区 datetime 不支持  timestamp占4个字节 datetime占8个字节 timestamp所能存储的时间范围为:'1970-01-01 00 ...

  5. 人脸识别Demo

    ★.本实例使用百度智能云-人工智能-人脸识别API实现. ★.楼下安装了刷脸进门.闲暇时无聊写了个Demo 主界面显示如下图: 本实例,包括了所有人脸识别API的调用. 1. 创建楼号,对应API中创 ...

  6. JVM知识点总结

    JVM总体梳理 一.jvm体系总体概览 JVM体系总体分四大块:类的加载机制.jvm内存结构.GC算法 垃圾回收.GC分析 命令调优 这里画了一个思维导图,将所有的知识点进行了陈列,因为图比较大可以点 ...

  7. 玩转 SpringBoot 2 快速搭建 | RESTful Api 篇

    概述 RESTful 是一种架构风格,任何符合 RESTful 风格的架构,我们都可以称之为 RESTful 架构.我们常说的 RESTful Api 是符合 RESTful 原则和约束的 HTTP ...

  8. 安装Python及各种包/库——没有网络的电脑上

    我们做项目时可能会遇到,一些电脑只能联内网或者无法联网,这种情况怎样在电脑上安装Python及各种第三方包/库呢? 1.首先,在有网络的电脑上在python官网下载好python安装包,地址:http ...

  9. 持续集成高级篇之Jenkins cli与Jenkins ssh

    系列目录 Jenkins Cli介绍 Jenkins Cli为Jenkins提供的一个cli工具,此工具功能非常强大,可以完成诸如重启jenkins,创建/删除job,查看job控制台输出,添加/删除 ...

  10. POJ-2387 Til the Cows Come Home ( 最短路 )

    题目链接: http://poj.org/problem?id=2387 Description Bessie is out in the field and wants to get back to ...